package de.jadehs.cosima.ui.contentassist.antlr.internal; 

import java.io.InputStream;
import org.eclipse.xtext.*;
import org.eclipse.xtext.parser.*;
import org.eclipse.xtext.parser.impl.*;
import org.eclipse.xtext.parsetree.*;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.parser.antlr.XtextTokenStream;
import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA;
import de.jadehs.cosima.services.CosimaLangGrammarAccess;



import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

@SuppressWarnings("all")
public class InternalCosimaLangParser extends AbstractInternalContentAssistParser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_CHAR", "RULE_EPS", "RULE_STRING", "RULE_ML_STRING", "RULE_ID", "RULE_INT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'normal'", "'end'", "'undefined'", "'program'", "'machine'", "'regex'", "'tape'", "'='", "'{'", "'}'", "':'", "'&'", "'|'", "'*'", "'('", "')'", "'grammar'", "'transitions'", "'states'", "'->'", "','", "'<>'", "'read'", "'<-'", "'write'", "'left'", "'right'", "'loop'", "'while'", "'turing'", "'stack'", "'start'"
    };
    public static final int RULE_ID=8;
    public static final int RULE_STRING=6;
    public static final int RULE_ANY_OTHER=13;
    public static final int RULE_EPS=5;
    public static final int RULE_INT=9;
    public static final int RULE_ML_STRING=7;
    public static final int RULE_CHAR=4;
    public static final int RULE_WS=12;
    public static final int RULE_SL_COMMENT=11;
    public static final int EOF=-1;
    public static final int RULE_ML_COMMENT=10;

        public InternalCosimaLangParser(TokenStream input) {
            super(input);
        }
        

    public String[] getTokenNames() { return tokenNames; }
    public String getGrammarFileName() { return "../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g"; }


     
     	private CosimaLangGrammarAccess grammarAccess;
     	
        public void setGrammarAccess(CosimaLangGrammarAccess grammarAccess) {
        	this.grammarAccess = grammarAccess;
        }
        
        @Override
        protected Grammar getGrammar() {
        	return grammarAccess.getGrammar();
        }
        
        @Override
        protected String getValueForTokenName(String tokenName) {
        	return tokenName;
        }




    // $ANTLR start entryRuleCosima
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:61:1: entryRuleCosima : ruleCosima EOF ;
    public final void entryRuleCosima() throws RecognitionException {
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:62:1: ( ruleCosima EOF )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:63:1: ruleCosima EOF
            {
             before(grammarAccess.getCosimaRule()); 
            pushFollow(FOLLOW_ruleCosima_in_entryRuleCosima61);
            ruleCosima();
            _fsp--;

             after(grammarAccess.getCosimaRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleCosima68); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleCosima


    // $ANTLR start ruleCosima
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:70:1: ruleCosima : ( ( rule__Cosima__Group__0 ) ) ;
    public final void ruleCosima() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:74:2: ( ( ( rule__Cosima__Group__0 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:75:1: ( ( rule__Cosima__Group__0 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:75:1: ( ( rule__Cosima__Group__0 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:76:1: ( rule__Cosima__Group__0 )
            {
             before(grammarAccess.getCosimaAccess().getGroup()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:77:1: ( rule__Cosima__Group__0 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:77:2: rule__Cosima__Group__0
            {
            pushFollow(FOLLOW_rule__Cosima__Group__0_in_ruleCosima94);
            rule__Cosima__Group__0();
            _fsp--;


            }

             after(grammarAccess.getCosimaAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleCosima


    // $ANTLR start entryRuleMachine
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:89:1: entryRuleMachine : ruleMachine EOF ;
    public final void entryRuleMachine() throws RecognitionException {
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:90:1: ( ruleMachine EOF )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:91:1: ruleMachine EOF
            {
             before(grammarAccess.getMachineRule()); 
            pushFollow(FOLLOW_ruleMachine_in_entryRuleMachine121);
            ruleMachine();
            _fsp--;

             after(grammarAccess.getMachineRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleMachine128); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleMachine


    // $ANTLR start ruleMachine
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:98:1: ruleMachine : ( ( ( rule__Machine__ComponentsAssignment ) ) ( ( rule__Machine__ComponentsAssignment )* ) ) ;
    public final void ruleMachine() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:102:2: ( ( ( ( rule__Machine__ComponentsAssignment ) ) ( ( rule__Machine__ComponentsAssignment )* ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:103:1: ( ( ( rule__Machine__ComponentsAssignment ) ) ( ( rule__Machine__ComponentsAssignment )* ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:103:1: ( ( ( rule__Machine__ComponentsAssignment ) ) ( ( rule__Machine__ComponentsAssignment )* ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:104:1: ( ( rule__Machine__ComponentsAssignment ) ) ( ( rule__Machine__ComponentsAssignment )* )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:104:1: ( ( rule__Machine__ComponentsAssignment ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:105:1: ( rule__Machine__ComponentsAssignment )
            {
             before(grammarAccess.getMachineAccess().getComponentsAssignment()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:106:1: ( rule__Machine__ComponentsAssignment )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:106:2: rule__Machine__ComponentsAssignment
            {
            pushFollow(FOLLOW_rule__Machine__ComponentsAssignment_in_ruleMachine156);
            rule__Machine__ComponentsAssignment();
            _fsp--;


            }

             after(grammarAccess.getMachineAccess().getComponentsAssignment()); 

            }

            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:109:1: ( ( rule__Machine__ComponentsAssignment )* )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:110:1: ( rule__Machine__ComponentsAssignment )*
            {
             before(grammarAccess.getMachineAccess().getComponentsAssignment()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:111:1: ( rule__Machine__ComponentsAssignment )*
            loop1:
            do {
                int alt1=2;
                int LA1_0 = input.LA(1);

                if ( (LA1_0==RULE_ID) ) {
                    alt1=1;
                }


                switch (alt1) {
            	case 1 :
            	    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:111:2: rule__Machine__ComponentsAssignment
            	    {
            	    pushFollow(FOLLOW_rule__Machine__ComponentsAssignment_in_ruleMachine168);
            	    rule__Machine__ComponentsAssignment();
            	    _fsp--;


            	    }
            	    break;

            	default :
            	    break loop1;
                }
            } while (true);

             after(grammarAccess.getMachineAccess().getComponentsAssignment()); 

            }


            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleMachine


    // $ANTLR start entryRuleProgram
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:124:1: entryRuleProgram : ruleProgram EOF ;
    public final void entryRuleProgram() throws RecognitionException {
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:125:1: ( ruleProgram EOF )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:126:1: ruleProgram EOF
            {
             before(grammarAccess.getProgramRule()); 
            pushFollow(FOLLOW_ruleProgram_in_entryRuleProgram198);
            ruleProgram();
            _fsp--;

             after(grammarAccess.getProgramRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleProgram205); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleProgram


    // $ANTLR start ruleProgram
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:133:1: ruleProgram : ( ( rule__Program__Alternatives ) ) ;
    public final void ruleProgram() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:137:2: ( ( ( rule__Program__Alternatives ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:138:1: ( ( rule__Program__Alternatives ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:138:1: ( ( rule__Program__Alternatives ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:139:1: ( rule__Program__Alternatives )
            {
             before(grammarAccess.getProgramAccess().getAlternatives()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:140:1: ( rule__Program__Alternatives )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:140:2: rule__Program__Alternatives
            {
            pushFollow(FOLLOW_rule__Program__Alternatives_in_ruleProgram231);
            rule__Program__Alternatives();
            _fsp--;


            }

             after(grammarAccess.getProgramAccess().getAlternatives()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleProgram


    // $ANTLR start entryRuleRegex
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:152:1: entryRuleRegex : ruleRegex EOF ;
    public final void entryRuleRegex() throws RecognitionException {
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:153:1: ( ruleRegex EOF )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:154:1: ruleRegex EOF
            {
             before(grammarAccess.getRegexRule()); 
            pushFollow(FOLLOW_ruleRegex_in_entryRuleRegex258);
            ruleRegex();
            _fsp--;

             after(grammarAccess.getRegexRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleRegex265); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleRegex


    // $ANTLR start ruleRegex
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:161:1: ruleRegex : ( ( rule__Regex__Group__0 ) ) ;
    public final void ruleRegex() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:165:2: ( ( ( rule__Regex__Group__0 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:166:1: ( ( rule__Regex__Group__0 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:166:1: ( ( rule__Regex__Group__0 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:167:1: ( rule__Regex__Group__0 )
            {
             before(grammarAccess.getRegexAccess().getGroup()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:168:1: ( rule__Regex__Group__0 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:168:2: rule__Regex__Group__0
            {
            pushFollow(FOLLOW_rule__Regex__Group__0_in_ruleRegex291);
            rule__Regex__Group__0();
            _fsp--;


            }

             after(grammarAccess.getRegexAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleRegex


    // $ANTLR start entryRuleExpression
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:180:1: entryRuleExpression : ruleExpression EOF ;
    public final void entryRuleExpression() throws RecognitionException {
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:181:1: ( ruleExpression EOF )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:182:1: ruleExpression EOF
            {
             before(grammarAccess.getExpressionRule()); 
            pushFollow(FOLLOW_ruleExpression_in_entryRuleExpression318);
            ruleExpression();
            _fsp--;

             after(grammarAccess.getExpressionRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleExpression325); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleExpression


    // $ANTLR start ruleExpression
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:189:1: ruleExpression : ( ruleANDExpression ) ;
    public final void ruleExpression() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:193:2: ( ( ruleANDExpression ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:194:1: ( ruleANDExpression )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:194:1: ( ruleANDExpression )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:195:1: ruleANDExpression
            {
             before(grammarAccess.getExpressionAccess().getANDExpressionParserRuleCall()); 
            pushFollow(FOLLOW_ruleANDExpression_in_ruleExpression351);
            ruleANDExpression();
            _fsp--;

             after(grammarAccess.getExpressionAccess().getANDExpressionParserRuleCall()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleExpression


    // $ANTLR start entryRuleANDExpression
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:208:1: entryRuleANDExpression : ruleANDExpression EOF ;
    public final void entryRuleANDExpression() throws RecognitionException {
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:209:1: ( ruleANDExpression EOF )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:210:1: ruleANDExpression EOF
            {
             before(grammarAccess.getANDExpressionRule()); 
            pushFollow(FOLLOW_ruleANDExpression_in_entryRuleANDExpression377);
            ruleANDExpression();
            _fsp--;

             after(grammarAccess.getANDExpressionRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleANDExpression384); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleANDExpression


    // $ANTLR start ruleANDExpression
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:217:1: ruleANDExpression : ( ( rule__ANDExpression__Group__0 ) ) ;
    public final void ruleANDExpression() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:221:2: ( ( ( rule__ANDExpression__Group__0 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:222:1: ( ( rule__ANDExpression__Group__0 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:222:1: ( ( rule__ANDExpression__Group__0 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:223:1: ( rule__ANDExpression__Group__0 )
            {
             before(grammarAccess.getANDExpressionAccess().getGroup()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:224:1: ( rule__ANDExpression__Group__0 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:224:2: rule__ANDExpression__Group__0
            {
            pushFollow(FOLLOW_rule__ANDExpression__Group__0_in_ruleANDExpression410);
            rule__ANDExpression__Group__0();
            _fsp--;


            }

             after(grammarAccess.getANDExpressionAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleANDExpression


    // $ANTLR start entryRuleORExpression
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:236:1: entryRuleORExpression : ruleORExpression EOF ;
    public final void entryRuleORExpression() throws RecognitionException {
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:237:1: ( ruleORExpression EOF )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:238:1: ruleORExpression EOF
            {
             before(grammarAccess.getORExpressionRule()); 
            pushFollow(FOLLOW_ruleORExpression_in_entryRuleORExpression437);
            ruleORExpression();
            _fsp--;

             after(grammarAccess.getORExpressionRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleORExpression444); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleORExpression


    // $ANTLR start ruleORExpression
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:245:1: ruleORExpression : ( ( rule__ORExpression__Group__0 ) ) ;
    public final void ruleORExpression() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:249:2: ( ( ( rule__ORExpression__Group__0 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:250:1: ( ( rule__ORExpression__Group__0 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:250:1: ( ( rule__ORExpression__Group__0 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:251:1: ( rule__ORExpression__Group__0 )
            {
             before(grammarAccess.getORExpressionAccess().getGroup()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:252:1: ( rule__ORExpression__Group__0 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:252:2: rule__ORExpression__Group__0
            {
            pushFollow(FOLLOW_rule__ORExpression__Group__0_in_ruleORExpression470);
            rule__ORExpression__Group__0();
            _fsp--;


            }

             after(grammarAccess.getORExpressionAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleORExpression


    // $ANTLR start entryRuleKleeneExpression
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:264:1: entryRuleKleeneExpression : ruleKleeneExpression EOF ;
    public final void entryRuleKleeneExpression() throws RecognitionException {
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:265:1: ( ruleKleeneExpression EOF )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:266:1: ruleKleeneExpression EOF
            {
             before(grammarAccess.getKleeneExpressionRule()); 
            pushFollow(FOLLOW_ruleKleeneExpression_in_entryRuleKleeneExpression497);
            ruleKleeneExpression();
            _fsp--;

             after(grammarAccess.getKleeneExpressionRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleKleeneExpression504); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleKleeneExpression


    // $ANTLR start ruleKleeneExpression
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:273:1: ruleKleeneExpression : ( ( rule__KleeneExpression__Group__0 ) ) ;
    public final void ruleKleeneExpression() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:277:2: ( ( ( rule__KleeneExpression__Group__0 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:278:1: ( ( rule__KleeneExpression__Group__0 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:278:1: ( ( rule__KleeneExpression__Group__0 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:279:1: ( rule__KleeneExpression__Group__0 )
            {
             before(grammarAccess.getKleeneExpressionAccess().getGroup()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:280:1: ( rule__KleeneExpression__Group__0 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:280:2: rule__KleeneExpression__Group__0
            {
            pushFollow(FOLLOW_rule__KleeneExpression__Group__0_in_ruleKleeneExpression530);
            rule__KleeneExpression__Group__0();
            _fsp--;


            }

             after(grammarAccess.getKleeneExpressionAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleKleeneExpression


    // $ANTLR start entryRulePrimaryExpression
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:292:1: entryRulePrimaryExpression : rulePrimaryExpression EOF ;
    public final void entryRulePrimaryExpression() throws RecognitionException {
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:293:1: ( rulePrimaryExpression EOF )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:294:1: rulePrimaryExpression EOF
            {
             before(grammarAccess.getPrimaryExpressionRule()); 
            pushFollow(FOLLOW_rulePrimaryExpression_in_entryRulePrimaryExpression557);
            rulePrimaryExpression();
            _fsp--;

             after(grammarAccess.getPrimaryExpressionRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRulePrimaryExpression564); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRulePrimaryExpression


    // $ANTLR start rulePrimaryExpression
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:301:1: rulePrimaryExpression : ( ( rule__PrimaryExpression__Alternatives ) ) ;
    public final void rulePrimaryExpression() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:305:2: ( ( ( rule__PrimaryExpression__Alternatives ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:306:1: ( ( rule__PrimaryExpression__Alternatives ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:306:1: ( ( rule__PrimaryExpression__Alternatives ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:307:1: ( rule__PrimaryExpression__Alternatives )
            {
             before(grammarAccess.getPrimaryExpressionAccess().getAlternatives()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:308:1: ( rule__PrimaryExpression__Alternatives )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:308:2: rule__PrimaryExpression__Alternatives
            {
            pushFollow(FOLLOW_rule__PrimaryExpression__Alternatives_in_rulePrimaryExpression590);
            rule__PrimaryExpression__Alternatives();
            _fsp--;


            }

             after(grammarAccess.getPrimaryExpressionAccess().getAlternatives()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rulePrimaryExpression


    // $ANTLR start entryRuleStringExpression
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:320:1: entryRuleStringExpression : ruleStringExpression EOF ;
    public final void entryRuleStringExpression() throws RecognitionException {
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:321:1: ( ruleStringExpression EOF )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:322:1: ruleStringExpression EOF
            {
             before(grammarAccess.getStringExpressionRule()); 
            pushFollow(FOLLOW_ruleStringExpression_in_entryRuleStringExpression617);
            ruleStringExpression();
            _fsp--;

             after(grammarAccess.getStringExpressionRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleStringExpression624); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleStringExpression


    // $ANTLR start ruleStringExpression
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:329:1: ruleStringExpression : ( ( rule__StringExpression__InputAssignment ) ) ;
    public final void ruleStringExpression() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:333:2: ( ( ( rule__StringExpression__InputAssignment ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:334:1: ( ( rule__StringExpression__InputAssignment ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:334:1: ( ( rule__StringExpression__InputAssignment ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:335:1: ( rule__StringExpression__InputAssignment )
            {
             before(grammarAccess.getStringExpressionAccess().getInputAssignment()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:336:1: ( rule__StringExpression__InputAssignment )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:336:2: rule__StringExpression__InputAssignment
            {
            pushFollow(FOLLOW_rule__StringExpression__InputAssignment_in_ruleStringExpression650);
            rule__StringExpression__InputAssignment();
            _fsp--;


            }

             after(grammarAccess.getStringExpressionAccess().getInputAssignment()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleStringExpression


    // $ANTLR start entryRuleGrammar
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:348:1: entryRuleGrammar : ruleGrammar EOF ;
    public final void entryRuleGrammar() throws RecognitionException {
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:349:1: ( ruleGrammar EOF )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:350:1: ruleGrammar EOF
            {
             before(grammarAccess.getGrammarRule()); 
            pushFollow(FOLLOW_ruleGrammar_in_entryRuleGrammar677);
            ruleGrammar();
            _fsp--;

             after(grammarAccess.getGrammarRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleGrammar684); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleGrammar


    // $ANTLR start ruleGrammar
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:357:1: ruleGrammar : ( ( rule__Grammar__Group__0 ) ) ;
    public final void ruleGrammar() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:361:2: ( ( ( rule__Grammar__Group__0 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:362:1: ( ( rule__Grammar__Group__0 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:362:1: ( ( rule__Grammar__Group__0 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:363:1: ( rule__Grammar__Group__0 )
            {
             before(grammarAccess.getGrammarAccess().getGroup()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:364:1: ( rule__Grammar__Group__0 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:364:2: rule__Grammar__Group__0
            {
            pushFollow(FOLLOW_rule__Grammar__Group__0_in_ruleGrammar710);
            rule__Grammar__Group__0();
            _fsp--;


            }

             after(grammarAccess.getGrammarAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleGrammar


    // $ANTLR start entryRuleTransitions
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:376:1: entryRuleTransitions : ruleTransitions EOF ;
    public final void entryRuleTransitions() throws RecognitionException {
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:377:1: ( ruleTransitions EOF )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:378:1: ruleTransitions EOF
            {
             before(grammarAccess.getTransitionsRule()); 
            pushFollow(FOLLOW_ruleTransitions_in_entryRuleTransitions737);
            ruleTransitions();
            _fsp--;

             after(grammarAccess.getTransitionsRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleTransitions744); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleTransitions


    // $ANTLR start ruleTransitions
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:385:1: ruleTransitions : ( ( rule__Transitions__Group__0 ) ) ;
    public final void ruleTransitions() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:389:2: ( ( ( rule__Transitions__Group__0 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:390:1: ( ( rule__Transitions__Group__0 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:390:1: ( ( rule__Transitions__Group__0 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:391:1: ( rule__Transitions__Group__0 )
            {
             before(grammarAccess.getTransitionsAccess().getGroup()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:392:1: ( rule__Transitions__Group__0 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:392:2: rule__Transitions__Group__0
            {
            pushFollow(FOLLOW_rule__Transitions__Group__0_in_ruleTransitions770);
            rule__Transitions__Group__0();
            _fsp--;


            }

             after(grammarAccess.getTransitionsAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleTransitions


    // $ANTLR start entryRuleTransition
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:404:1: entryRuleTransition : ruleTransition EOF ;
    public final void entryRuleTransition() throws RecognitionException {
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:405:1: ( ruleTransition EOF )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:406:1: ruleTransition EOF
            {
             before(grammarAccess.getTransitionRule()); 
            pushFollow(FOLLOW_ruleTransition_in_entryRuleTransition797);
            ruleTransition();
            _fsp--;

             after(grammarAccess.getTransitionRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleTransition804); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleTransition


    // $ANTLR start ruleTransition
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:413:1: ruleTransition : ( ( rule__Transition__Group__0 ) ) ;
    public final void ruleTransition() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:417:2: ( ( ( rule__Transition__Group__0 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:418:1: ( ( rule__Transition__Group__0 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:418:1: ( ( rule__Transition__Group__0 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:419:1: ( rule__Transition__Group__0 )
            {
             before(grammarAccess.getTransitionAccess().getGroup()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:420:1: ( rule__Transition__Group__0 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:420:2: rule__Transition__Group__0
            {
            pushFollow(FOLLOW_rule__Transition__Group__0_in_ruleTransition830);
            rule__Transition__Group__0();
            _fsp--;


            }

             after(grammarAccess.getTransitionAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleTransition


    // $ANTLR start entryRuleInstruction
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:432:1: entryRuleInstruction : ruleInstruction EOF ;
    public final void entryRuleInstruction() throws RecognitionException {
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:433:1: ( ruleInstruction EOF )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:434:1: ruleInstruction EOF
            {
             before(grammarAccess.getInstructionRule()); 
            pushFollow(FOLLOW_ruleInstruction_in_entryRuleInstruction857);
            ruleInstruction();
            _fsp--;

             after(grammarAccess.getInstructionRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleInstruction864); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleInstruction


    // $ANTLR start ruleInstruction
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:441:1: ruleInstruction : ( ruleTapeInstruction ) ;
    public final void ruleInstruction() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:445:2: ( ( ruleTapeInstruction ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:446:1: ( ruleTapeInstruction )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:446:1: ( ruleTapeInstruction )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:447:1: ruleTapeInstruction
            {
             before(grammarAccess.getInstructionAccess().getTapeInstructionParserRuleCall()); 
            pushFollow(FOLLOW_ruleTapeInstruction_in_ruleInstruction890);
            ruleTapeInstruction();
            _fsp--;

             after(grammarAccess.getInstructionAccess().getTapeInstructionParserRuleCall()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleInstruction


    // $ANTLR start entryRuleTapeInstruction
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:460:1: entryRuleTapeInstruction : ruleTapeInstruction EOF ;
    public final void entryRuleTapeInstruction() throws RecognitionException {
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:461:1: ( ruleTapeInstruction EOF )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:462:1: ruleTapeInstruction EOF
            {
             before(grammarAccess.getTapeInstructionRule()); 
            pushFollow(FOLLOW_ruleTapeInstruction_in_entryRuleTapeInstruction916);
            ruleTapeInstruction();
            _fsp--;

             after(grammarAccess.getTapeInstructionRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleTapeInstruction923); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleTapeInstruction


    // $ANTLR start ruleTapeInstruction
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:469:1: ruleTapeInstruction : ( ( rule__TapeInstruction__Alternatives ) ) ;
    public final void ruleTapeInstruction() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:473:2: ( ( ( rule__TapeInstruction__Alternatives ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:474:1: ( ( rule__TapeInstruction__Alternatives ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:474:1: ( ( rule__TapeInstruction__Alternatives ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:475:1: ( rule__TapeInstruction__Alternatives )
            {
             before(grammarAccess.getTapeInstructionAccess().getAlternatives()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:476:1: ( rule__TapeInstruction__Alternatives )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:476:2: rule__TapeInstruction__Alternatives
            {
            pushFollow(FOLLOW_rule__TapeInstruction__Alternatives_in_ruleTapeInstruction949);
            rule__TapeInstruction__Alternatives();
            _fsp--;


            }

             after(grammarAccess.getTapeInstructionAccess().getAlternatives()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleTapeInstruction


    // $ANTLR start entryRuleReadFromTape
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:488:1: entryRuleReadFromTape : ruleReadFromTape EOF ;
    public final void entryRuleReadFromTape() throws RecognitionException {
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:489:1: ( ruleReadFromTape EOF )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:490:1: ruleReadFromTape EOF
            {
             before(grammarAccess.getReadFromTapeRule()); 
            pushFollow(FOLLOW_ruleReadFromTape_in_entryRuleReadFromTape976);
            ruleReadFromTape();
            _fsp--;

             after(grammarAccess.getReadFromTapeRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleReadFromTape983); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleReadFromTape


    // $ANTLR start ruleReadFromTape
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:497:1: ruleReadFromTape : ( ( rule__ReadFromTape__Group__0 ) ) ;
    public final void ruleReadFromTape() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:501:2: ( ( ( rule__ReadFromTape__Group__0 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:502:1: ( ( rule__ReadFromTape__Group__0 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:502:1: ( ( rule__ReadFromTape__Group__0 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:503:1: ( rule__ReadFromTape__Group__0 )
            {
             before(grammarAccess.getReadFromTapeAccess().getGroup()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:504:1: ( rule__ReadFromTape__Group__0 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:504:2: rule__ReadFromTape__Group__0
            {
            pushFollow(FOLLOW_rule__ReadFromTape__Group__0_in_ruleReadFromTape1009);
            rule__ReadFromTape__Group__0();
            _fsp--;


            }

             after(grammarAccess.getReadFromTapeAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleReadFromTape


    // $ANTLR start entryRuleWriteToTape
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:516:1: entryRuleWriteToTape : ruleWriteToTape EOF ;
    public final void entryRuleWriteToTape() throws RecognitionException {
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:517:1: ( ruleWriteToTape EOF )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:518:1: ruleWriteToTape EOF
            {
             before(grammarAccess.getWriteToTapeRule()); 
            pushFollow(FOLLOW_ruleWriteToTape_in_entryRuleWriteToTape1036);
            ruleWriteToTape();
            _fsp--;

             after(grammarAccess.getWriteToTapeRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleWriteToTape1043); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleWriteToTape


    // $ANTLR start ruleWriteToTape
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:525:1: ruleWriteToTape : ( ( rule__WriteToTape__Group__0 ) ) ;
    public final void ruleWriteToTape() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:529:2: ( ( ( rule__WriteToTape__Group__0 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:530:1: ( ( rule__WriteToTape__Group__0 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:530:1: ( ( rule__WriteToTape__Group__0 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:531:1: ( rule__WriteToTape__Group__0 )
            {
             before(grammarAccess.getWriteToTapeAccess().getGroup()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:532:1: ( rule__WriteToTape__Group__0 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:532:2: rule__WriteToTape__Group__0
            {
            pushFollow(FOLLOW_rule__WriteToTape__Group__0_in_ruleWriteToTape1069);
            rule__WriteToTape__Group__0();
            _fsp--;


            }

             after(grammarAccess.getWriteToTapeAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleWriteToTape


    // $ANTLR start entryRuleMoveTapeLeft
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:544:1: entryRuleMoveTapeLeft : ruleMoveTapeLeft EOF ;
    public final void entryRuleMoveTapeLeft() throws RecognitionException {
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:545:1: ( ruleMoveTapeLeft EOF )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:546:1: ruleMoveTapeLeft EOF
            {
             before(grammarAccess.getMoveTapeLeftRule()); 
            pushFollow(FOLLOW_ruleMoveTapeLeft_in_entryRuleMoveTapeLeft1096);
            ruleMoveTapeLeft();
            _fsp--;

             after(grammarAccess.getMoveTapeLeftRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleMoveTapeLeft1103); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleMoveTapeLeft


    // $ANTLR start ruleMoveTapeLeft
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:553:1: ruleMoveTapeLeft : ( ( rule__MoveTapeLeft__Group__0 ) ) ;
    public final void ruleMoveTapeLeft() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:557:2: ( ( ( rule__MoveTapeLeft__Group__0 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:558:1: ( ( rule__MoveTapeLeft__Group__0 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:558:1: ( ( rule__MoveTapeLeft__Group__0 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:559:1: ( rule__MoveTapeLeft__Group__0 )
            {
             before(grammarAccess.getMoveTapeLeftAccess().getGroup()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:560:1: ( rule__MoveTapeLeft__Group__0 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:560:2: rule__MoveTapeLeft__Group__0
            {
            pushFollow(FOLLOW_rule__MoveTapeLeft__Group__0_in_ruleMoveTapeLeft1129);
            rule__MoveTapeLeft__Group__0();
            _fsp--;


            }

             after(grammarAccess.getMoveTapeLeftAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleMoveTapeLeft


    // $ANTLR start entryRuleMoveTapeRight
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:572:1: entryRuleMoveTapeRight : ruleMoveTapeRight EOF ;
    public final void entryRuleMoveTapeRight() throws RecognitionException {
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:573:1: ( ruleMoveTapeRight EOF )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:574:1: ruleMoveTapeRight EOF
            {
             before(grammarAccess.getMoveTapeRightRule()); 
            pushFollow(FOLLOW_ruleMoveTapeRight_in_entryRuleMoveTapeRight1156);
            ruleMoveTapeRight();
            _fsp--;

             after(grammarAccess.getMoveTapeRightRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleMoveTapeRight1163); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleMoveTapeRight


    // $ANTLR start ruleMoveTapeRight
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:581:1: ruleMoveTapeRight : ( ( rule__MoveTapeRight__Group__0 ) ) ;
    public final void ruleMoveTapeRight() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:585:2: ( ( ( rule__MoveTapeRight__Group__0 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:586:1: ( ( rule__MoveTapeRight__Group__0 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:586:1: ( ( rule__MoveTapeRight__Group__0 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:587:1: ( rule__MoveTapeRight__Group__0 )
            {
             before(grammarAccess.getMoveTapeRightAccess().getGroup()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:588:1: ( rule__MoveTapeRight__Group__0 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:588:2: rule__MoveTapeRight__Group__0
            {
            pushFollow(FOLLOW_rule__MoveTapeRight__Group__0_in_ruleMoveTapeRight1189);
            rule__MoveTapeRight__Group__0();
            _fsp--;


            }

             after(grammarAccess.getMoveTapeRightAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleMoveTapeRight


    // $ANTLR start entryRuleLoop
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:600:1: entryRuleLoop : ruleLoop EOF ;
    public final void entryRuleLoop() throws RecognitionException {
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:601:1: ( ruleLoop EOF )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:602:1: ruleLoop EOF
            {
             before(grammarAccess.getLoopRule()); 
            pushFollow(FOLLOW_ruleLoop_in_entryRuleLoop1216);
            ruleLoop();
            _fsp--;

             after(grammarAccess.getLoopRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleLoop1223); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleLoop


    // $ANTLR start ruleLoop
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:609:1: ruleLoop : ( ( rule__Loop__Group__0 ) ) ;
    public final void ruleLoop() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:613:2: ( ( ( rule__Loop__Group__0 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:614:1: ( ( rule__Loop__Group__0 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:614:1: ( ( rule__Loop__Group__0 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:615:1: ( rule__Loop__Group__0 )
            {
             before(grammarAccess.getLoopAccess().getGroup()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:616:1: ( rule__Loop__Group__0 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:616:2: rule__Loop__Group__0
            {
            pushFollow(FOLLOW_rule__Loop__Group__0_in_ruleLoop1249);
            rule__Loop__Group__0();
            _fsp--;


            }

             after(grammarAccess.getLoopAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleLoop


    // $ANTLR start entryRuleWhile
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:628:1: entryRuleWhile : ruleWhile EOF ;
    public final void entryRuleWhile() throws RecognitionException {
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:629:1: ( ruleWhile EOF )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:630:1: ruleWhile EOF
            {
             before(grammarAccess.getWhileRule()); 
            pushFollow(FOLLOW_ruleWhile_in_entryRuleWhile1276);
            ruleWhile();
            _fsp--;

             after(grammarAccess.getWhileRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleWhile1283); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleWhile


    // $ANTLR start ruleWhile
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:637:1: ruleWhile : ( ( rule__While__Group__0 ) ) ;
    public final void ruleWhile() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:641:2: ( ( ( rule__While__Group__0 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:642:1: ( ( rule__While__Group__0 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:642:1: ( ( rule__While__Group__0 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:643:1: ( rule__While__Group__0 )
            {
             before(grammarAccess.getWhileAccess().getGroup()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:644:1: ( rule__While__Group__0 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:644:2: rule__While__Group__0
            {
            pushFollow(FOLLOW_rule__While__Group__0_in_ruleWhile1309);
            rule__While__Group__0();
            _fsp--;


            }

             after(grammarAccess.getWhileAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleWhile


    // $ANTLR start entryRuleTuring
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:656:1: entryRuleTuring : ruleTuring EOF ;
    public final void entryRuleTuring() throws RecognitionException {
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:657:1: ( ruleTuring EOF )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:658:1: ruleTuring EOF
            {
             before(grammarAccess.getTuringRule()); 
            pushFollow(FOLLOW_ruleTuring_in_entryRuleTuring1336);
            ruleTuring();
            _fsp--;

             after(grammarAccess.getTuringRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleTuring1343); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleTuring


    // $ANTLR start ruleTuring
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:665:1: ruleTuring : ( ( rule__Turing__Group__0 ) ) ;
    public final void ruleTuring() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:669:2: ( ( ( rule__Turing__Group__0 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:670:1: ( ( rule__Turing__Group__0 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:670:1: ( ( rule__Turing__Group__0 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:671:1: ( rule__Turing__Group__0 )
            {
             before(grammarAccess.getTuringAccess().getGroup()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:672:1: ( rule__Turing__Group__0 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:672:2: rule__Turing__Group__0
            {
            pushFollow(FOLLOW_rule__Turing__Group__0_in_ruleTuring1369);
            rule__Turing__Group__0();
            _fsp--;


            }

             after(grammarAccess.getTuringAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleTuring


    // $ANTLR start entryRuleComponent
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:684:1: entryRuleComponent : ruleComponent EOF ;
    public final void entryRuleComponent() throws RecognitionException {
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:685:1: ( ruleComponent EOF )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:686:1: ruleComponent EOF
            {
             before(grammarAccess.getComponentRule()); 
            pushFollow(FOLLOW_ruleComponent_in_entryRuleComponent1396);
            ruleComponent();
            _fsp--;

             after(grammarAccess.getComponentRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleComponent1403); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleComponent


    // $ANTLR start ruleComponent
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:693:1: ruleComponent : ( ( rule__Component__Alternatives ) ) ;
    public final void ruleComponent() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:697:2: ( ( ( rule__Component__Alternatives ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:698:1: ( ( rule__Component__Alternatives ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:698:1: ( ( rule__Component__Alternatives ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:699:1: ( rule__Component__Alternatives )
            {
             before(grammarAccess.getComponentAccess().getAlternatives()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:700:1: ( rule__Component__Alternatives )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:700:2: rule__Component__Alternatives
            {
            pushFollow(FOLLOW_rule__Component__Alternatives_in_ruleComponent1429);
            rule__Component__Alternatives();
            _fsp--;


            }

             after(grammarAccess.getComponentAccess().getAlternatives()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleComponent


    // $ANTLR start entryRuleTape
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:712:1: entryRuleTape : ruleTape EOF ;
    public final void entryRuleTape() throws RecognitionException {
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:713:1: ( ruleTape EOF )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:714:1: ruleTape EOF
            {
             before(grammarAccess.getTapeRule()); 
            pushFollow(FOLLOW_ruleTape_in_entryRuleTape1456);
            ruleTape();
            _fsp--;

             after(grammarAccess.getTapeRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleTape1463); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleTape


    // $ANTLR start ruleTape
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:721:1: ruleTape : ( ( rule__Tape__Group__0 ) ) ;
    public final void ruleTape() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:725:2: ( ( ( rule__Tape__Group__0 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:726:1: ( ( rule__Tape__Group__0 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:726:1: ( ( rule__Tape__Group__0 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:727:1: ( rule__Tape__Group__0 )
            {
             before(grammarAccess.getTapeAccess().getGroup()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:728:1: ( rule__Tape__Group__0 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:728:2: rule__Tape__Group__0
            {
            pushFollow(FOLLOW_rule__Tape__Group__0_in_ruleTape1489);
            rule__Tape__Group__0();
            _fsp--;


            }

             after(grammarAccess.getTapeAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleTape


    // $ANTLR start entryRuleStack
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:740:1: entryRuleStack : ruleStack EOF ;
    public final void entryRuleStack() throws RecognitionException {
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:741:1: ( ruleStack EOF )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:742:1: ruleStack EOF
            {
             before(grammarAccess.getStackRule()); 
            pushFollow(FOLLOW_ruleStack_in_entryRuleStack1516);
            ruleStack();
            _fsp--;

             after(grammarAccess.getStackRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleStack1523); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleStack


    // $ANTLR start ruleStack
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:749:1: ruleStack : ( ( rule__Stack__Group__0 ) ) ;
    public final void ruleStack() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:753:2: ( ( ( rule__Stack__Group__0 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:754:1: ( ( rule__Stack__Group__0 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:754:1: ( ( rule__Stack__Group__0 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:755:1: ( rule__Stack__Group__0 )
            {
             before(grammarAccess.getStackAccess().getGroup()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:756:1: ( rule__Stack__Group__0 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:756:2: rule__Stack__Group__0
            {
            pushFollow(FOLLOW_rule__Stack__Group__0_in_ruleStack1549);
            rule__Stack__Group__0();
            _fsp--;


            }

             after(grammarAccess.getStackAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleStack


    // $ANTLR start entryRuleStatesRegister
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:768:1: entryRuleStatesRegister : ruleStatesRegister EOF ;
    public final void entryRuleStatesRegister() throws RecognitionException {
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:769:1: ( ruleStatesRegister EOF )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:770:1: ruleStatesRegister EOF
            {
             before(grammarAccess.getStatesRegisterRule()); 
            pushFollow(FOLLOW_ruleStatesRegister_in_entryRuleStatesRegister1576);
            ruleStatesRegister();
            _fsp--;

             after(grammarAccess.getStatesRegisterRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleStatesRegister1583); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleStatesRegister


    // $ANTLR start ruleStatesRegister
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:777:1: ruleStatesRegister : ( ( rule__StatesRegister__Group__0 ) ) ;
    public final void ruleStatesRegister() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:781:2: ( ( ( rule__StatesRegister__Group__0 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:782:1: ( ( rule__StatesRegister__Group__0 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:782:1: ( ( rule__StatesRegister__Group__0 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:783:1: ( rule__StatesRegister__Group__0 )
            {
             before(grammarAccess.getStatesRegisterAccess().getGroup()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:784:1: ( rule__StatesRegister__Group__0 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:784:2: rule__StatesRegister__Group__0
            {
            pushFollow(FOLLOW_rule__StatesRegister__Group__0_in_ruleStatesRegister1609);
            rule__StatesRegister__Group__0();
            _fsp--;


            }

             after(grammarAccess.getStatesRegisterAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleStatesRegister


    // $ANTLR start entryRuleState
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:796:1: entryRuleState : ruleState EOF ;
    public final void entryRuleState() throws RecognitionException {
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:797:1: ( ruleState EOF )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:798:1: ruleState EOF
            {
             before(grammarAccess.getStateRule()); 
            pushFollow(FOLLOW_ruleState_in_entryRuleState1636);
            ruleState();
            _fsp--;

             after(grammarAccess.getStateRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleState1643); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleState


    // $ANTLR start ruleState
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:805:1: ruleState : ( ( rule__State__Alternatives ) ) ;
    public final void ruleState() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:809:2: ( ( ( rule__State__Alternatives ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:810:1: ( ( rule__State__Alternatives ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:810:1: ( ( rule__State__Alternatives ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:811:1: ( rule__State__Alternatives )
            {
             before(grammarAccess.getStateAccess().getAlternatives()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:812:1: ( rule__State__Alternatives )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:812:2: rule__State__Alternatives
            {
            pushFollow(FOLLOW_rule__State__Alternatives_in_ruleState1669);
            rule__State__Alternatives();
            _fsp--;


            }

             after(grammarAccess.getStateAccess().getAlternatives()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleState


    // $ANTLR start ruleStateType
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:825:1: ruleStateType : ( ( rule__StateType__Alternatives ) ) ;
    public final void ruleStateType() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:829:1: ( ( ( rule__StateType__Alternatives ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:830:1: ( ( rule__StateType__Alternatives ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:830:1: ( ( rule__StateType__Alternatives ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:831:1: ( rule__StateType__Alternatives )
            {
             before(grammarAccess.getStateTypeAccess().getAlternatives()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:832:1: ( rule__StateType__Alternatives )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:832:2: rule__StateType__Alternatives
            {
            pushFollow(FOLLOW_rule__StateType__Alternatives_in_ruleStateType1706);
            rule__StateType__Alternatives();
            _fsp--;


            }

             after(grammarAccess.getStateTypeAccess().getAlternatives()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleStateType


    // $ANTLR start rule__Program__Alternatives
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:843:1: rule__Program__Alternatives : ( ( ruleTransitions ) | ( ruleRegex ) | ( ruleGrammar ) | ( ruleLoop ) | ( ruleWhile ) | ( ruleTuring ) );
    public final void rule__Program__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:847:1: ( ( ruleTransitions ) | ( ruleRegex ) | ( ruleGrammar ) | ( ruleLoop ) | ( ruleWhile ) | ( ruleTuring ) )
            int alt2=6;
            switch ( input.LA(1) ) {
            case RULE_ID:
                {
                int LA2_1 = input.LA(2);

                if ( (LA2_1==24) ) {
                    switch ( input.LA(3) ) {
                    case 19:
                        {
                        alt2=2;
                        }
                        break;
                    case 43:
                        {
                        alt2=6;
                        }
                        break;
                    case 41:
                        {
                        alt2=4;
                        }
                        break;
                    case 31:
                        {
                        alt2=1;
                        }
                        break;
                    case 30:
                        {
                        alt2=3;
                        }
                        break;
                    case 42:
                        {
                        alt2=5;
                        }
                        break;
                    default:
                        NoViableAltException nvae =
                            new NoViableAltException("843:1: rule__Program__Alternatives : ( ( ruleTransitions ) | ( ruleRegex ) | ( ruleGrammar ) | ( ruleLoop ) | ( ruleWhile ) | ( ruleTuring ) );", 2, 8, input);

                        throw nvae;
                    }

                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("843:1: rule__Program__Alternatives : ( ( ruleTransitions ) | ( ruleRegex ) | ( ruleGrammar ) | ( ruleLoop ) | ( ruleWhile ) | ( ruleTuring ) );", 2, 1, input);

                    throw nvae;
                }
                }
                break;
            case 31:
                {
                alt2=1;
                }
                break;
            case 19:
                {
                alt2=2;
                }
                break;
            case 30:
                {
                alt2=3;
                }
                break;
            case 41:
                {
                alt2=4;
                }
                break;
            case 42:
                {
                alt2=5;
                }
                break;
            case 43:
                {
                alt2=6;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("843:1: rule__Program__Alternatives : ( ( ruleTransitions ) | ( ruleRegex ) | ( ruleGrammar ) | ( ruleLoop ) | ( ruleWhile ) | ( ruleTuring ) );", 2, 0, input);

                throw nvae;
            }

            switch (alt2) {
                case 1 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:848:1: ( ruleTransitions )
                    {
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:848:1: ( ruleTransitions )
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:849:1: ruleTransitions
                    {
                     before(grammarAccess.getProgramAccess().getTransitionsParserRuleCall_0()); 
                    pushFollow(FOLLOW_ruleTransitions_in_rule__Program__Alternatives1741);
                    ruleTransitions();
                    _fsp--;

                     after(grammarAccess.getProgramAccess().getTransitionsParserRuleCall_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:854:6: ( ruleRegex )
                    {
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:854:6: ( ruleRegex )
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:855:1: ruleRegex
                    {
                     before(grammarAccess.getProgramAccess().getRegexParserRuleCall_1()); 
                    pushFollow(FOLLOW_ruleRegex_in_rule__Program__Alternatives1758);
                    ruleRegex();
                    _fsp--;

                     after(grammarAccess.getProgramAccess().getRegexParserRuleCall_1()); 

                    }


                    }
                    break;
                case 3 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:860:6: ( ruleGrammar )
                    {
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:860:6: ( ruleGrammar )
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:861:1: ruleGrammar
                    {
                     before(grammarAccess.getProgramAccess().getGrammarParserRuleCall_2()); 
                    pushFollow(FOLLOW_ruleGrammar_in_rule__Program__Alternatives1775);
                    ruleGrammar();
                    _fsp--;

                     after(grammarAccess.getProgramAccess().getGrammarParserRuleCall_2()); 

                    }


                    }
                    break;
                case 4 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:866:6: ( ruleLoop )
                    {
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:866:6: ( ruleLoop )
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:867:1: ruleLoop
                    {
                     before(grammarAccess.getProgramAccess().getLoopParserRuleCall_3()); 
                    pushFollow(FOLLOW_ruleLoop_in_rule__Program__Alternatives1792);
                    ruleLoop();
                    _fsp--;

                     after(grammarAccess.getProgramAccess().getLoopParserRuleCall_3()); 

                    }


                    }
                    break;
                case 5 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:872:6: ( ruleWhile )
                    {
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:872:6: ( ruleWhile )
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:873:1: ruleWhile
                    {
                     before(grammarAccess.getProgramAccess().getWhileParserRuleCall_4()); 
                    pushFollow(FOLLOW_ruleWhile_in_rule__Program__Alternatives1809);
                    ruleWhile();
                    _fsp--;

                     after(grammarAccess.getProgramAccess().getWhileParserRuleCall_4()); 

                    }


                    }
                    break;
                case 6 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:878:6: ( ruleTuring )
                    {
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:878:6: ( ruleTuring )
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:879:1: ruleTuring
                    {
                     before(grammarAccess.getProgramAccess().getTuringParserRuleCall_5()); 
                    pushFollow(FOLLOW_ruleTuring_in_rule__Program__Alternatives1826);
                    ruleTuring();
                    _fsp--;

                     after(grammarAccess.getProgramAccess().getTuringParserRuleCall_5()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Program__Alternatives


    // $ANTLR start rule__PrimaryExpression__Alternatives
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:889:1: rule__PrimaryExpression__Alternatives : ( ( ( rule__PrimaryExpression__Group_0__0 ) ) | ( ruleStringExpression ) );
    public final void rule__PrimaryExpression__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:893:1: ( ( ( rule__PrimaryExpression__Group_0__0 ) ) | ( ruleStringExpression ) )
            int alt3=2;
            int LA3_0 = input.LA(1);

            if ( (LA3_0==28) ) {
                alt3=1;
            }
            else if ( (LA3_0==RULE_STRING) ) {
                alt3=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("889:1: rule__PrimaryExpression__Alternatives : ( ( ( rule__PrimaryExpression__Group_0__0 ) ) | ( ruleStringExpression ) );", 3, 0, input);

                throw nvae;
            }
            switch (alt3) {
                case 1 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:894:1: ( ( rule__PrimaryExpression__Group_0__0 ) )
                    {
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:894:1: ( ( rule__PrimaryExpression__Group_0__0 ) )
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:895:1: ( rule__PrimaryExpression__Group_0__0 )
                    {
                     before(grammarAccess.getPrimaryExpressionAccess().getGroup_0()); 
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:896:1: ( rule__PrimaryExpression__Group_0__0 )
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:896:2: rule__PrimaryExpression__Group_0__0
                    {
                    pushFollow(FOLLOW_rule__PrimaryExpression__Group_0__0_in_rule__PrimaryExpression__Alternatives1858);
                    rule__PrimaryExpression__Group_0__0();
                    _fsp--;


                    }

                     after(grammarAccess.getPrimaryExpressionAccess().getGroup_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:900:6: ( ruleStringExpression )
                    {
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:900:6: ( ruleStringExpression )
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:901:1: ruleStringExpression
                    {
                     before(grammarAccess.getPrimaryExpressionAccess().getStringExpressionParserRuleCall_1()); 
                    pushFollow(FOLLOW_ruleStringExpression_in_rule__PrimaryExpression__Alternatives1876);
                    ruleStringExpression();
                    _fsp--;

                     after(grammarAccess.getPrimaryExpressionAccess().getStringExpressionParserRuleCall_1()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__PrimaryExpression__Alternatives


    // $ANTLR start rule__TapeInstruction__Alternatives
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:911:1: rule__TapeInstruction__Alternatives : ( ( ruleReadFromTape ) | ( ruleWriteToTape ) | ( ruleMoveTapeLeft ) | ( ruleMoveTapeRight ) );
    public final void rule__TapeInstruction__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:915:1: ( ( ruleReadFromTape ) | ( ruleWriteToTape ) | ( ruleMoveTapeLeft ) | ( ruleMoveTapeRight ) )
            int alt4=4;
            switch ( input.LA(1) ) {
            case RULE_CHAR:
            case RULE_EPS:
            case 36:
                {
                alt4=1;
                }
                break;
            case 38:
                {
                alt4=2;
                }
                break;
            case 39:
                {
                alt4=3;
                }
                break;
            case 40:
                {
                alt4=4;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("911:1: rule__TapeInstruction__Alternatives : ( ( ruleReadFromTape ) | ( ruleWriteToTape ) | ( ruleMoveTapeLeft ) | ( ruleMoveTapeRight ) );", 4, 0, input);

                throw nvae;
            }

            switch (alt4) {
                case 1 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:916:1: ( ruleReadFromTape )
                    {
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:916:1: ( ruleReadFromTape )
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:917:1: ruleReadFromTape
                    {
                     before(grammarAccess.getTapeInstructionAccess().getReadFromTapeParserRuleCall_0()); 
                    pushFollow(FOLLOW_ruleReadFromTape_in_rule__TapeInstruction__Alternatives1908);
                    ruleReadFromTape();
                    _fsp--;

                     after(grammarAccess.getTapeInstructionAccess().getReadFromTapeParserRuleCall_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:922:6: ( ruleWriteToTape )
                    {
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:922:6: ( ruleWriteToTape )
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:923:1: ruleWriteToTape
                    {
                     before(grammarAccess.getTapeInstructionAccess().getWriteToTapeParserRuleCall_1()); 
                    pushFollow(FOLLOW_ruleWriteToTape_in_rule__TapeInstruction__Alternatives1925);
                    ruleWriteToTape();
                    _fsp--;

                     after(grammarAccess.getTapeInstructionAccess().getWriteToTapeParserRuleCall_1()); 

                    }


                    }
                    break;
                case 3 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:928:6: ( ruleMoveTapeLeft )
                    {
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:928:6: ( ruleMoveTapeLeft )
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:929:1: ruleMoveTapeLeft
                    {
                     before(grammarAccess.getTapeInstructionAccess().getMoveTapeLeftParserRuleCall_2()); 
                    pushFollow(FOLLOW_ruleMoveTapeLeft_in_rule__TapeInstruction__Alternatives1942);
                    ruleMoveTapeLeft();
                    _fsp--;

                     after(grammarAccess.getTapeInstructionAccess().getMoveTapeLeftParserRuleCall_2()); 

                    }


                    }
                    break;
                case 4 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:934:6: ( ruleMoveTapeRight )
                    {
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:934:6: ( ruleMoveTapeRight )
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:935:1: ruleMoveTapeRight
                    {
                     before(grammarAccess.getTapeInstructionAccess().getMoveTapeRightParserRuleCall_3()); 
                    pushFollow(FOLLOW_ruleMoveTapeRight_in_rule__TapeInstruction__Alternatives1959);
                    ruleMoveTapeRight();
                    _fsp--;

                     after(grammarAccess.getTapeInstructionAccess().getMoveTapeRightParserRuleCall_3()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__TapeInstruction__Alternatives


    // $ANTLR start rule__ReadFromTape__SymbolAlternatives_1_0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:945:1: rule__ReadFromTape__SymbolAlternatives_1_0 : ( ( RULE_CHAR ) | ( RULE_EPS ) );
    public final void rule__ReadFromTape__SymbolAlternatives_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:949:1: ( ( RULE_CHAR ) | ( RULE_EPS ) )
            int alt5=2;
            int LA5_0 = input.LA(1);

            if ( (LA5_0==RULE_CHAR) ) {
                alt5=1;
            }
            else if ( (LA5_0==RULE_EPS) ) {
                alt5=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("945:1: rule__ReadFromTape__SymbolAlternatives_1_0 : ( ( RULE_CHAR ) | ( RULE_EPS ) );", 5, 0, input);

                throw nvae;
            }
            switch (alt5) {
                case 1 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:950:1: ( RULE_CHAR )
                    {
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:950:1: ( RULE_CHAR )
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:951:1: RULE_CHAR
                    {
                     before(grammarAccess.getReadFromTapeAccess().getSymbolCHARTerminalRuleCall_1_0_0()); 
                    match(input,RULE_CHAR,FOLLOW_RULE_CHAR_in_rule__ReadFromTape__SymbolAlternatives_1_01991); 
                     after(grammarAccess.getReadFromTapeAccess().getSymbolCHARTerminalRuleCall_1_0_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:956:6: ( RULE_EPS )
                    {
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:956:6: ( RULE_EPS )
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:957:1: RULE_EPS
                    {
                     before(grammarAccess.getReadFromTapeAccess().getSymbolEPSTerminalRuleCall_1_0_1()); 
                    match(input,RULE_EPS,FOLLOW_RULE_EPS_in_rule__ReadFromTape__SymbolAlternatives_1_02008); 
                     after(grammarAccess.getReadFromTapeAccess().getSymbolEPSTerminalRuleCall_1_0_1()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__ReadFromTape__SymbolAlternatives_1_0


    // $ANTLR start rule__WriteToTape__SymbolAlternatives_1_0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:967:1: rule__WriteToTape__SymbolAlternatives_1_0 : ( ( RULE_CHAR ) | ( RULE_EPS ) );
    public final void rule__WriteToTape__SymbolAlternatives_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:971:1: ( ( RULE_CHAR ) | ( RULE_EPS ) )
            int alt6=2;
            int LA6_0 = input.LA(1);

            if ( (LA6_0==RULE_CHAR) ) {
                alt6=1;
            }
            else if ( (LA6_0==RULE_EPS) ) {
                alt6=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("967:1: rule__WriteToTape__SymbolAlternatives_1_0 : ( ( RULE_CHAR ) | ( RULE_EPS ) );", 6, 0, input);

                throw nvae;
            }
            switch (alt6) {
                case 1 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:972:1: ( RULE_CHAR )
                    {
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:972:1: ( RULE_CHAR )
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:973:1: RULE_CHAR
                    {
                     before(grammarAccess.getWriteToTapeAccess().getSymbolCHARTerminalRuleCall_1_0_0()); 
                    match(input,RULE_CHAR,FOLLOW_RULE_CHAR_in_rule__WriteToTape__SymbolAlternatives_1_02040); 
                     after(grammarAccess.getWriteToTapeAccess().getSymbolCHARTerminalRuleCall_1_0_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:978:6: ( RULE_EPS )
                    {
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:978:6: ( RULE_EPS )
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:979:1: RULE_EPS
                    {
                     before(grammarAccess.getWriteToTapeAccess().getSymbolEPSTerminalRuleCall_1_0_1()); 
                    match(input,RULE_EPS,FOLLOW_RULE_EPS_in_rule__WriteToTape__SymbolAlternatives_1_02057); 
                     after(grammarAccess.getWriteToTapeAccess().getSymbolEPSTerminalRuleCall_1_0_1()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__WriteToTape__SymbolAlternatives_1_0


    // $ANTLR start rule__Component__Alternatives
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:989:1: rule__Component__Alternatives : ( ( ruleTape ) | ( ruleStack ) | ( ruleStatesRegister ) );
    public final void rule__Component__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:993:1: ( ( ruleTape ) | ( ruleStack ) | ( ruleStatesRegister ) )
            int alt7=3;
            int LA7_0 = input.LA(1);

            if ( (LA7_0==RULE_ID) ) {
                int LA7_1 = input.LA(2);

                if ( (LA7_1==24) ) {
                    switch ( input.LA(3) ) {
                    case 32:
                        {
                        alt7=3;
                        }
                        break;
                    case 44:
                        {
                        alt7=2;
                        }
                        break;
                    case 20:
                        {
                        alt7=1;
                        }
                        break;
                    default:
                        NoViableAltException nvae =
                            new NoViableAltException("989:1: rule__Component__Alternatives : ( ( ruleTape ) | ( ruleStack ) | ( ruleStatesRegister ) );", 7, 2, input);

                        throw nvae;
                    }

                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("989:1: rule__Component__Alternatives : ( ( ruleTape ) | ( ruleStack ) | ( ruleStatesRegister ) );", 7, 1, input);

                    throw nvae;
                }
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("989:1: rule__Component__Alternatives : ( ( ruleTape ) | ( ruleStack ) | ( ruleStatesRegister ) );", 7, 0, input);

                throw nvae;
            }
            switch (alt7) {
                case 1 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:994:1: ( ruleTape )
                    {
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:994:1: ( ruleTape )
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:995:1: ruleTape
                    {
                     before(grammarAccess.getComponentAccess().getTapeParserRuleCall_0()); 
                    pushFollow(FOLLOW_ruleTape_in_rule__Component__Alternatives2089);
                    ruleTape();
                    _fsp--;

                     after(grammarAccess.getComponentAccess().getTapeParserRuleCall_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1000:6: ( ruleStack )
                    {
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1000:6: ( ruleStack )
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1001:1: ruleStack
                    {
                     before(grammarAccess.getComponentAccess().getStackParserRuleCall_1()); 
                    pushFollow(FOLLOW_ruleStack_in_rule__Component__Alternatives2106);
                    ruleStack();
                    _fsp--;

                     after(grammarAccess.getComponentAccess().getStackParserRuleCall_1()); 

                    }


                    }
                    break;
                case 3 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1006:6: ( ruleStatesRegister )
                    {
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1006:6: ( ruleStatesRegister )
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1007:1: ruleStatesRegister
                    {
                     before(grammarAccess.getComponentAccess().getStatesRegisterParserRuleCall_2()); 
                    pushFollow(FOLLOW_ruleStatesRegister_in_rule__Component__Alternatives2123);
                    ruleStatesRegister();
                    _fsp--;

                     after(grammarAccess.getComponentAccess().getStatesRegisterParserRuleCall_2()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Component__Alternatives


    // $ANTLR start rule__Tape__InputAlternatives_4_1_0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1017:1: rule__Tape__InputAlternatives_4_1_0 : ( ( RULE_STRING ) | ( RULE_ML_STRING ) );
    public final void rule__Tape__InputAlternatives_4_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1021:1: ( ( RULE_STRING ) | ( RULE_ML_STRING ) )
            int alt8=2;
            int LA8_0 = input.LA(1);

            if ( (LA8_0==RULE_STRING) ) {
                alt8=1;
            }
            else if ( (LA8_0==RULE_ML_STRING) ) {
                alt8=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("1017:1: rule__Tape__InputAlternatives_4_1_0 : ( ( RULE_STRING ) | ( RULE_ML_STRING ) );", 8, 0, input);

                throw nvae;
            }
            switch (alt8) {
                case 1 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1022:1: ( RULE_STRING )
                    {
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1022:1: ( RULE_STRING )
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1023:1: RULE_STRING
                    {
                     before(grammarAccess.getTapeAccess().getInputSTRINGTerminalRuleCall_4_1_0_0()); 
                    match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Tape__InputAlternatives_4_1_02155); 
                     after(grammarAccess.getTapeAccess().getInputSTRINGTerminalRuleCall_4_1_0_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1028:6: ( RULE_ML_STRING )
                    {
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1028:6: ( RULE_ML_STRING )
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1029:1: RULE_ML_STRING
                    {
                     before(grammarAccess.getTapeAccess().getInputML_STRINGTerminalRuleCall_4_1_0_1()); 
                    match(input,RULE_ML_STRING,FOLLOW_RULE_ML_STRING_in_rule__Tape__InputAlternatives_4_1_02172); 
                     after(grammarAccess.getTapeAccess().getInputML_STRINGTerminalRuleCall_4_1_0_1()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Tape__InputAlternatives_4_1_0


    // $ANTLR start rule__Tape__AlphabetAlternatives_4_2_1_0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1039:1: rule__Tape__AlphabetAlternatives_4_2_1_0 : ( ( RULE_CHAR ) | ( RULE_EPS ) );
    public final void rule__Tape__AlphabetAlternatives_4_2_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1043:1: ( ( RULE_CHAR ) | ( RULE_EPS ) )
            int alt9=2;
            int LA9_0 = input.LA(1);

            if ( (LA9_0==RULE_CHAR) ) {
                alt9=1;
            }
            else if ( (LA9_0==RULE_EPS) ) {
                alt9=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("1039:1: rule__Tape__AlphabetAlternatives_4_2_1_0 : ( ( RULE_CHAR ) | ( RULE_EPS ) );", 9, 0, input);

                throw nvae;
            }
            switch (alt9) {
                case 1 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1044:1: ( RULE_CHAR )
                    {
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1044:1: ( RULE_CHAR )
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1045:1: RULE_CHAR
                    {
                     before(grammarAccess.getTapeAccess().getAlphabetCHARTerminalRuleCall_4_2_1_0_0()); 
                    match(input,RULE_CHAR,FOLLOW_RULE_CHAR_in_rule__Tape__AlphabetAlternatives_4_2_1_02204); 
                     after(grammarAccess.getTapeAccess().getAlphabetCHARTerminalRuleCall_4_2_1_0_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1050:6: ( RULE_EPS )
                    {
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1050:6: ( RULE_EPS )
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1051:1: RULE_EPS
                    {
                     before(grammarAccess.getTapeAccess().getAlphabetEPSTerminalRuleCall_4_2_1_0_1()); 
                    match(input,RULE_EPS,FOLLOW_RULE_EPS_in_rule__Tape__AlphabetAlternatives_4_2_1_02221); 
                     after(grammarAccess.getTapeAccess().getAlphabetEPSTerminalRuleCall_4_2_1_0_1()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Tape__AlphabetAlternatives_4_2_1_0


    // $ANTLR start rule__Tape__AlphabetAlternatives_4_2_2_1_0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1061:1: rule__Tape__AlphabetAlternatives_4_2_2_1_0 : ( ( RULE_CHAR ) | ( RULE_EPS ) );
    public final void rule__Tape__AlphabetAlternatives_4_2_2_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1065:1: ( ( RULE_CHAR ) | ( RULE_EPS ) )
            int alt10=2;
            int LA10_0 = input.LA(1);

            if ( (LA10_0==RULE_CHAR) ) {
                alt10=1;
            }
            else if ( (LA10_0==RULE_EPS) ) {
                alt10=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("1061:1: rule__Tape__AlphabetAlternatives_4_2_2_1_0 : ( ( RULE_CHAR ) | ( RULE_EPS ) );", 10, 0, input);

                throw nvae;
            }
            switch (alt10) {
                case 1 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1066:1: ( RULE_CHAR )
                    {
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1066:1: ( RULE_CHAR )
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1067:1: RULE_CHAR
                    {
                     before(grammarAccess.getTapeAccess().getAlphabetCHARTerminalRuleCall_4_2_2_1_0_0()); 
                    match(input,RULE_CHAR,FOLLOW_RULE_CHAR_in_rule__Tape__AlphabetAlternatives_4_2_2_1_02253); 
                     after(grammarAccess.getTapeAccess().getAlphabetCHARTerminalRuleCall_4_2_2_1_0_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1072:6: ( RULE_EPS )
                    {
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1072:6: ( RULE_EPS )
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1073:1: RULE_EPS
                    {
                     before(grammarAccess.getTapeAccess().getAlphabetEPSTerminalRuleCall_4_2_2_1_0_1()); 
                    match(input,RULE_EPS,FOLLOW_RULE_EPS_in_rule__Tape__AlphabetAlternatives_4_2_2_1_02270); 
                     after(grammarAccess.getTapeAccess().getAlphabetEPSTerminalRuleCall_4_2_2_1_0_1()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Tape__AlphabetAlternatives_4_2_2_1_0


    // $ANTLR start rule__State__Alternatives
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1083:1: rule__State__Alternatives : ( ( ( rule__State__Group_0__0 ) ) | ( ( rule__State__Group_1__0 ) ) );
    public final void rule__State__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1087:1: ( ( ( rule__State__Group_0__0 ) ) | ( ( rule__State__Group_1__0 ) ) )
            int alt11=2;
            switch ( input.LA(1) ) {
            case 45:
                {
                switch ( input.LA(2) ) {
                case 14:
                    {
                    int LA11_2 = input.LA(3);

                    if ( (LA11_2==RULE_ID) ) {
                        int LA11_5 = input.LA(4);

                        if ( (LA11_5==EOF||LA11_5==RULE_ID||(LA11_5>=14 && LA11_5<=16)||LA11_5==23||LA11_5==45) ) {
                            alt11=1;
                        }
                        else if ( (LA11_5==22) ) {
                            alt11=2;
                        }
                        else {
                            NoViableAltException nvae =
                                new NoViableAltException("1083:1: rule__State__Alternatives : ( ( ( rule__State__Group_0__0 ) ) | ( ( rule__State__Group_1__0 ) ) );", 11, 5, input);

                            throw nvae;
                        }
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("1083:1: rule__State__Alternatives : ( ( ( rule__State__Group_0__0 ) ) | ( ( rule__State__Group_1__0 ) ) );", 11, 2, input);

                        throw nvae;
                    }
                    }
                    break;
                case 15:
                    {
                    int LA11_3 = input.LA(3);

                    if ( (LA11_3==RULE_ID) ) {
                        int LA11_5 = input.LA(4);

                        if ( (LA11_5==EOF||LA11_5==RULE_ID||(LA11_5>=14 && LA11_5<=16)||LA11_5==23||LA11_5==45) ) {
                            alt11=1;
                        }
                        else if ( (LA11_5==22) ) {
                            alt11=2;
                        }
                        else {
                            NoViableAltException nvae =
                                new NoViableAltException("1083:1: rule__State__Alternatives : ( ( ( rule__State__Group_0__0 ) ) | ( ( rule__State__Group_1__0 ) ) );", 11, 5, input);

                            throw nvae;
                        }
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("1083:1: rule__State__Alternatives : ( ( ( rule__State__Group_0__0 ) ) | ( ( rule__State__Group_1__0 ) ) );", 11, 3, input);

                        throw nvae;
                    }
                    }
                    break;
                case 16:
                    {
                    int LA11_4 = input.LA(3);

                    if ( (LA11_4==RULE_ID) ) {
                        int LA11_5 = input.LA(4);

                        if ( (LA11_5==EOF||LA11_5==RULE_ID||(LA11_5>=14 && LA11_5<=16)||LA11_5==23||LA11_5==45) ) {
                            alt11=1;
                        }
                        else if ( (LA11_5==22) ) {
                            alt11=2;
                        }
                        else {
                            NoViableAltException nvae =
                                new NoViableAltException("1083:1: rule__State__Alternatives : ( ( ( rule__State__Group_0__0 ) ) | ( ( rule__State__Group_1__0 ) ) );", 11, 5, input);

                            throw nvae;
                        }
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("1083:1: rule__State__Alternatives : ( ( ( rule__State__Group_0__0 ) ) | ( ( rule__State__Group_1__0 ) ) );", 11, 4, input);

                        throw nvae;
                    }
                    }
                    break;
                case RULE_ID:
                    {
                    int LA11_5 = input.LA(3);

                    if ( (LA11_5==EOF||LA11_5==RULE_ID||(LA11_5>=14 && LA11_5<=16)||LA11_5==23||LA11_5==45) ) {
                        alt11=1;
                    }
                    else if ( (LA11_5==22) ) {
                        alt11=2;
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("1083:1: rule__State__Alternatives : ( ( ( rule__State__Group_0__0 ) ) | ( ( rule__State__Group_1__0 ) ) );", 11, 5, input);

                        throw nvae;
                    }
                    }
                    break;
                default:
                    NoViableAltException nvae =
                        new NoViableAltException("1083:1: rule__State__Alternatives : ( ( ( rule__State__Group_0__0 ) ) | ( ( rule__State__Group_1__0 ) ) );", 11, 1, input);

                    throw nvae;
                }

                }
                break;
            case 14:
                {
                int LA11_2 = input.LA(2);

                if ( (LA11_2==RULE_ID) ) {
                    int LA11_5 = input.LA(3);

                    if ( (LA11_5==EOF||LA11_5==RULE_ID||(LA11_5>=14 && LA11_5<=16)||LA11_5==23||LA11_5==45) ) {
                        alt11=1;
                    }
                    else if ( (LA11_5==22) ) {
                        alt11=2;
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("1083:1: rule__State__Alternatives : ( ( ( rule__State__Group_0__0 ) ) | ( ( rule__State__Group_1__0 ) ) );", 11, 5, input);

                        throw nvae;
                    }
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("1083:1: rule__State__Alternatives : ( ( ( rule__State__Group_0__0 ) ) | ( ( rule__State__Group_1__0 ) ) );", 11, 2, input);

                    throw nvae;
                }
                }
                break;
            case 15:
                {
                int LA11_3 = input.LA(2);

                if ( (LA11_3==RULE_ID) ) {
                    int LA11_5 = input.LA(3);

                    if ( (LA11_5==EOF||LA11_5==RULE_ID||(LA11_5>=14 && LA11_5<=16)||LA11_5==23||LA11_5==45) ) {
                        alt11=1;
                    }
                    else if ( (LA11_5==22) ) {
                        alt11=2;
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("1083:1: rule__State__Alternatives : ( ( ( rule__State__Group_0__0 ) ) | ( ( rule__State__Group_1__0 ) ) );", 11, 5, input);

                        throw nvae;
                    }
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("1083:1: rule__State__Alternatives : ( ( ( rule__State__Group_0__0 ) ) | ( ( rule__State__Group_1__0 ) ) );", 11, 3, input);

                    throw nvae;
                }
                }
                break;
            case 16:
                {
                int LA11_4 = input.LA(2);

                if ( (LA11_4==RULE_ID) ) {
                    int LA11_5 = input.LA(3);

                    if ( (LA11_5==EOF||LA11_5==RULE_ID||(LA11_5>=14 && LA11_5<=16)||LA11_5==23||LA11_5==45) ) {
                        alt11=1;
                    }
                    else if ( (LA11_5==22) ) {
                        alt11=2;
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("1083:1: rule__State__Alternatives : ( ( ( rule__State__Group_0__0 ) ) | ( ( rule__State__Group_1__0 ) ) );", 11, 5, input);

                        throw nvae;
                    }
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("1083:1: rule__State__Alternatives : ( ( ( rule__State__Group_0__0 ) ) | ( ( rule__State__Group_1__0 ) ) );", 11, 4, input);

                    throw nvae;
                }
                }
                break;
            case RULE_ID:
                {
                int LA11_5 = input.LA(2);

                if ( (LA11_5==EOF||LA11_5==RULE_ID||(LA11_5>=14 && LA11_5<=16)||LA11_5==23||LA11_5==45) ) {
                    alt11=1;
                }
                else if ( (LA11_5==22) ) {
                    alt11=2;
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("1083:1: rule__State__Alternatives : ( ( ( rule__State__Group_0__0 ) ) | ( ( rule__State__Group_1__0 ) ) );", 11, 5, input);

                    throw nvae;
                }
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("1083:1: rule__State__Alternatives : ( ( ( rule__State__Group_0__0 ) ) | ( ( rule__State__Group_1__0 ) ) );", 11, 0, input);

                throw nvae;
            }

            switch (alt11) {
                case 1 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1088:1: ( ( rule__State__Group_0__0 ) )
                    {
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1088:1: ( ( rule__State__Group_0__0 ) )
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1089:1: ( rule__State__Group_0__0 )
                    {
                     before(grammarAccess.getStateAccess().getGroup_0()); 
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1090:1: ( rule__State__Group_0__0 )
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1090:2: rule__State__Group_0__0
                    {
                    pushFollow(FOLLOW_rule__State__Group_0__0_in_rule__State__Alternatives2302);
                    rule__State__Group_0__0();
                    _fsp--;


                    }

                     after(grammarAccess.getStateAccess().getGroup_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1094:6: ( ( rule__State__Group_1__0 ) )
                    {
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1094:6: ( ( rule__State__Group_1__0 ) )
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1095:1: ( rule__State__Group_1__0 )
                    {
                     before(grammarAccess.getStateAccess().getGroup_1()); 
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1096:1: ( rule__State__Group_1__0 )
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1096:2: rule__State__Group_1__0
                    {
                    pushFollow(FOLLOW_rule__State__Group_1__0_in_rule__State__Alternatives2320);
                    rule__State__Group_1__0();
                    _fsp--;


                    }

                     after(grammarAccess.getStateAccess().getGroup_1()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__State__Alternatives


    // $ANTLR start rule__StateType__Alternatives
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1105:1: rule__StateType__Alternatives : ( ( ( 'normal' ) ) | ( ( 'end' ) ) | ( ( 'undefined' ) ) );
    public final void rule__StateType__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1109:1: ( ( ( 'normal' ) ) | ( ( 'end' ) ) | ( ( 'undefined' ) ) )
            int alt12=3;
            switch ( input.LA(1) ) {
            case 14:
                {
                alt12=1;
                }
                break;
            case 15:
                {
                alt12=2;
                }
                break;
            case 16:
                {
                alt12=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("1105:1: rule__StateType__Alternatives : ( ( ( 'normal' ) ) | ( ( 'end' ) ) | ( ( 'undefined' ) ) );", 12, 0, input);

                throw nvae;
            }

            switch (alt12) {
                case 1 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1110:1: ( ( 'normal' ) )
                    {
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1110:1: ( ( 'normal' ) )
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1111:1: ( 'normal' )
                    {
                     before(grammarAccess.getStateTypeAccess().getNORMALEnumLiteralDeclaration_0()); 
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1112:1: ( 'normal' )
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1112:3: 'normal'
                    {
                    match(input,14,FOLLOW_14_in_rule__StateType__Alternatives2354); 

                    }

                     after(grammarAccess.getStateTypeAccess().getNORMALEnumLiteralDeclaration_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1117:6: ( ( 'end' ) )
                    {
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1117:6: ( ( 'end' ) )
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1118:1: ( 'end' )
                    {
                     before(grammarAccess.getStateTypeAccess().getENDEnumLiteralDeclaration_1()); 
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1119:1: ( 'end' )
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1119:3: 'end'
                    {
                    match(input,15,FOLLOW_15_in_rule__StateType__Alternatives2375); 

                    }

                     after(grammarAccess.getStateTypeAccess().getENDEnumLiteralDeclaration_1()); 

                    }


                    }
                    break;
                case 3 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1124:6: ( ( 'undefined' ) )
                    {
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1124:6: ( ( 'undefined' ) )
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1125:1: ( 'undefined' )
                    {
                     before(grammarAccess.getStateTypeAccess().getUNDEFEnumLiteralDeclaration_2()); 
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1126:1: ( 'undefined' )
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1126:3: 'undefined'
                    {
                    match(input,16,FOLLOW_16_in_rule__StateType__Alternatives2396); 

                    }

                     after(grammarAccess.getStateTypeAccess().getUNDEFEnumLiteralDeclaration_2()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__StateType__Alternatives


    // $ANTLR start rule__Cosima__Group__0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1138:1: rule__Cosima__Group__0 : rule__Cosima__Group__0__Impl rule__Cosima__Group__1 ;
    public final void rule__Cosima__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1142:1: ( rule__Cosima__Group__0__Impl rule__Cosima__Group__1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1143:2: rule__Cosima__Group__0__Impl rule__Cosima__Group__1
            {
            pushFollow(FOLLOW_rule__Cosima__Group__0__Impl_in_rule__Cosima__Group__02429);
            rule__Cosima__Group__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Cosima__Group__1_in_rule__Cosima__Group__02432);
            rule__Cosima__Group__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Cosima__Group__0


    // $ANTLR start rule__Cosima__Group__0__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1150:1: rule__Cosima__Group__0__Impl : ( ( rule__Cosima__Group_0__0 )? ) ;
    public final void rule__Cosima__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1154:1: ( ( ( rule__Cosima__Group_0__0 )? ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1155:1: ( ( rule__Cosima__Group_0__0 )? )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1155:1: ( ( rule__Cosima__Group_0__0 )? )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1156:1: ( rule__Cosima__Group_0__0 )?
            {
             before(grammarAccess.getCosimaAccess().getGroup_0()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1157:1: ( rule__Cosima__Group_0__0 )?
            int alt13=2;
            int LA13_0 = input.LA(1);

            if ( (LA13_0==18) ) {
                alt13=1;
            }
            switch (alt13) {
                case 1 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1157:2: rule__Cosima__Group_0__0
                    {
                    pushFollow(FOLLOW_rule__Cosima__Group_0__0_in_rule__Cosima__Group__0__Impl2459);
                    rule__Cosima__Group_0__0();
                    _fsp--;


                    }
                    break;

            }

             after(grammarAccess.getCosimaAccess().getGroup_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Cosima__Group__0__Impl


    // $ANTLR start rule__Cosima__Group__1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1167:1: rule__Cosima__Group__1 : rule__Cosima__Group__1__Impl rule__Cosima__Group__2 ;
    public final void rule__Cosima__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1171:1: ( rule__Cosima__Group__1__Impl rule__Cosima__Group__2 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1172:2: rule__Cosima__Group__1__Impl rule__Cosima__Group__2
            {
            pushFollow(FOLLOW_rule__Cosima__Group__1__Impl_in_rule__Cosima__Group__12490);
            rule__Cosima__Group__1__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Cosima__Group__2_in_rule__Cosima__Group__12493);
            rule__Cosima__Group__2();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Cosima__Group__1


    // $ANTLR start rule__Cosima__Group__1__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1179:1: rule__Cosima__Group__1__Impl : ( 'program' ) ;
    public final void rule__Cosima__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1183:1: ( ( 'program' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1184:1: ( 'program' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1184:1: ( 'program' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1185:1: 'program'
            {
             before(grammarAccess.getCosimaAccess().getProgramKeyword_1()); 
            match(input,17,FOLLOW_17_in_rule__Cosima__Group__1__Impl2521); 
             after(grammarAccess.getCosimaAccess().getProgramKeyword_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Cosima__Group__1__Impl


    // $ANTLR start rule__Cosima__Group__2
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1198:1: rule__Cosima__Group__2 : rule__Cosima__Group__2__Impl ;
    public final void rule__Cosima__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1202:1: ( rule__Cosima__Group__2__Impl )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1203:2: rule__Cosima__Group__2__Impl
            {
            pushFollow(FOLLOW_rule__Cosima__Group__2__Impl_in_rule__Cosima__Group__22552);
            rule__Cosima__Group__2__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Cosima__Group__2


    // $ANTLR start rule__Cosima__Group__2__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1209:1: rule__Cosima__Group__2__Impl : ( ( ( rule__Cosima__ProgramsAssignment_2 ) ) ( ( rule__Cosima__ProgramsAssignment_2 )* ) ) ;
    public final void rule__Cosima__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1213:1: ( ( ( ( rule__Cosima__ProgramsAssignment_2 ) ) ( ( rule__Cosima__ProgramsAssignment_2 )* ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1214:1: ( ( ( rule__Cosima__ProgramsAssignment_2 ) ) ( ( rule__Cosima__ProgramsAssignment_2 )* ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1214:1: ( ( ( rule__Cosima__ProgramsAssignment_2 ) ) ( ( rule__Cosima__ProgramsAssignment_2 )* ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1215:1: ( ( rule__Cosima__ProgramsAssignment_2 ) ) ( ( rule__Cosima__ProgramsAssignment_2 )* )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1215:1: ( ( rule__Cosima__ProgramsAssignment_2 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1216:1: ( rule__Cosima__ProgramsAssignment_2 )
            {
             before(grammarAccess.getCosimaAccess().getProgramsAssignment_2()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1217:1: ( rule__Cosima__ProgramsAssignment_2 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1217:2: rule__Cosima__ProgramsAssignment_2
            {
            pushFollow(FOLLOW_rule__Cosima__ProgramsAssignment_2_in_rule__Cosima__Group__2__Impl2581);
            rule__Cosima__ProgramsAssignment_2();
            _fsp--;


            }

             after(grammarAccess.getCosimaAccess().getProgramsAssignment_2()); 

            }

            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1220:1: ( ( rule__Cosima__ProgramsAssignment_2 )* )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1221:1: ( rule__Cosima__ProgramsAssignment_2 )*
            {
             before(grammarAccess.getCosimaAccess().getProgramsAssignment_2()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1222:1: ( rule__Cosima__ProgramsAssignment_2 )*
            loop14:
            do {
                int alt14=2;
                int LA14_0 = input.LA(1);

                if ( (LA14_0==RULE_ID||LA14_0==19||(LA14_0>=30 && LA14_0<=31)||(LA14_0>=41 && LA14_0<=43)) ) {
                    alt14=1;
                }


                switch (alt14) {
            	case 1 :
            	    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1222:2: rule__Cosima__ProgramsAssignment_2
            	    {
            	    pushFollow(FOLLOW_rule__Cosima__ProgramsAssignment_2_in_rule__Cosima__Group__2__Impl2593);
            	    rule__Cosima__ProgramsAssignment_2();
            	    _fsp--;


            	    }
            	    break;

            	default :
            	    break loop14;
                }
            } while (true);

             after(grammarAccess.getCosimaAccess().getProgramsAssignment_2()); 

            }


            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Cosima__Group__2__Impl


    // $ANTLR start rule__Cosima__Group_0__0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1239:1: rule__Cosima__Group_0__0 : rule__Cosima__Group_0__0__Impl rule__Cosima__Group_0__1 ;
    public final void rule__Cosima__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1243:1: ( rule__Cosima__Group_0__0__Impl rule__Cosima__Group_0__1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1244:2: rule__Cosima__Group_0__0__Impl rule__Cosima__Group_0__1
            {
            pushFollow(FOLLOW_rule__Cosima__Group_0__0__Impl_in_rule__Cosima__Group_0__02632);
            rule__Cosima__Group_0__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Cosima__Group_0__1_in_rule__Cosima__Group_0__02635);
            rule__Cosima__Group_0__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Cosima__Group_0__0


    // $ANTLR start rule__Cosima__Group_0__0__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1251:1: rule__Cosima__Group_0__0__Impl : ( 'machine' ) ;
    public final void rule__Cosima__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1255:1: ( ( 'machine' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1256:1: ( 'machine' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1256:1: ( 'machine' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1257:1: 'machine'
            {
             before(grammarAccess.getCosimaAccess().getMachineKeyword_0_0()); 
            match(input,18,FOLLOW_18_in_rule__Cosima__Group_0__0__Impl2663); 
             after(grammarAccess.getCosimaAccess().getMachineKeyword_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Cosima__Group_0__0__Impl


    // $ANTLR start rule__Cosima__Group_0__1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1270:1: rule__Cosima__Group_0__1 : rule__Cosima__Group_0__1__Impl ;
    public final void rule__Cosima__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1274:1: ( rule__Cosima__Group_0__1__Impl )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1275:2: rule__Cosima__Group_0__1__Impl
            {
            pushFollow(FOLLOW_rule__Cosima__Group_0__1__Impl_in_rule__Cosima__Group_0__12694);
            rule__Cosima__Group_0__1__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Cosima__Group_0__1


    // $ANTLR start rule__Cosima__Group_0__1__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1281:1: rule__Cosima__Group_0__1__Impl : ( ( rule__Cosima__MachineAssignment_0_1 ) ) ;
    public final void rule__Cosima__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1285:1: ( ( ( rule__Cosima__MachineAssignment_0_1 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1286:1: ( ( rule__Cosima__MachineAssignment_0_1 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1286:1: ( ( rule__Cosima__MachineAssignment_0_1 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1287:1: ( rule__Cosima__MachineAssignment_0_1 )
            {
             before(grammarAccess.getCosimaAccess().getMachineAssignment_0_1()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1288:1: ( rule__Cosima__MachineAssignment_0_1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1288:2: rule__Cosima__MachineAssignment_0_1
            {
            pushFollow(FOLLOW_rule__Cosima__MachineAssignment_0_1_in_rule__Cosima__Group_0__1__Impl2721);
            rule__Cosima__MachineAssignment_0_1();
            _fsp--;


            }

             after(grammarAccess.getCosimaAccess().getMachineAssignment_0_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Cosima__Group_0__1__Impl


    // $ANTLR start rule__Regex__Group__0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1302:1: rule__Regex__Group__0 : rule__Regex__Group__0__Impl rule__Regex__Group__1 ;
    public final void rule__Regex__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1306:1: ( rule__Regex__Group__0__Impl rule__Regex__Group__1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1307:2: rule__Regex__Group__0__Impl rule__Regex__Group__1
            {
            pushFollow(FOLLOW_rule__Regex__Group__0__Impl_in_rule__Regex__Group__02755);
            rule__Regex__Group__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Regex__Group__1_in_rule__Regex__Group__02758);
            rule__Regex__Group__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Regex__Group__0


    // $ANTLR start rule__Regex__Group__0__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1314:1: rule__Regex__Group__0__Impl : ( () ) ;
    public final void rule__Regex__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1318:1: ( ( () ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1319:1: ( () )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1319:1: ( () )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1320:1: ()
            {
             before(grammarAccess.getRegexAccess().getRegexAction_0()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1321:1: ()
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1323:1: 
            {
            }

             after(grammarAccess.getRegexAccess().getRegexAction_0()); 

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Regex__Group__0__Impl


    // $ANTLR start rule__Regex__Group__1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1333:1: rule__Regex__Group__1 : rule__Regex__Group__1__Impl rule__Regex__Group__2 ;
    public final void rule__Regex__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1337:1: ( rule__Regex__Group__1__Impl rule__Regex__Group__2 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1338:2: rule__Regex__Group__1__Impl rule__Regex__Group__2
            {
            pushFollow(FOLLOW_rule__Regex__Group__1__Impl_in_rule__Regex__Group__12816);
            rule__Regex__Group__1__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Regex__Group__2_in_rule__Regex__Group__12819);
            rule__Regex__Group__2();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Regex__Group__1


    // $ANTLR start rule__Regex__Group__1__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1345:1: rule__Regex__Group__1__Impl : ( ( rule__Regex__Group_1__0 )? ) ;
    public final void rule__Regex__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1349:1: ( ( ( rule__Regex__Group_1__0 )? ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1350:1: ( ( rule__Regex__Group_1__0 )? )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1350:1: ( ( rule__Regex__Group_1__0 )? )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1351:1: ( rule__Regex__Group_1__0 )?
            {
             before(grammarAccess.getRegexAccess().getGroup_1()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1352:1: ( rule__Regex__Group_1__0 )?
            int alt15=2;
            int LA15_0 = input.LA(1);

            if ( (LA15_0==RULE_ID) ) {
                alt15=1;
            }
            switch (alt15) {
                case 1 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1352:2: rule__Regex__Group_1__0
                    {
                    pushFollow(FOLLOW_rule__Regex__Group_1__0_in_rule__Regex__Group__1__Impl2846);
                    rule__Regex__Group_1__0();
                    _fsp--;


                    }
                    break;

            }

             after(grammarAccess.getRegexAccess().getGroup_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Regex__Group__1__Impl


    // $ANTLR start rule__Regex__Group__2
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1362:1: rule__Regex__Group__2 : rule__Regex__Group__2__Impl rule__Regex__Group__3 ;
    public final void rule__Regex__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1366:1: ( rule__Regex__Group__2__Impl rule__Regex__Group__3 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1367:2: rule__Regex__Group__2__Impl rule__Regex__Group__3
            {
            pushFollow(FOLLOW_rule__Regex__Group__2__Impl_in_rule__Regex__Group__22877);
            rule__Regex__Group__2__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Regex__Group__3_in_rule__Regex__Group__22880);
            rule__Regex__Group__3();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Regex__Group__2


    // $ANTLR start rule__Regex__Group__2__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1374:1: rule__Regex__Group__2__Impl : ( 'regex' ) ;
    public final void rule__Regex__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1378:1: ( ( 'regex' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1379:1: ( 'regex' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1379:1: ( 'regex' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1380:1: 'regex'
            {
             before(grammarAccess.getRegexAccess().getRegexKeyword_2()); 
            match(input,19,FOLLOW_19_in_rule__Regex__Group__2__Impl2908); 
             after(grammarAccess.getRegexAccess().getRegexKeyword_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Regex__Group__2__Impl


    // $ANTLR start rule__Regex__Group__3
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1393:1: rule__Regex__Group__3 : rule__Regex__Group__3__Impl rule__Regex__Group__4 ;
    public final void rule__Regex__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1397:1: ( rule__Regex__Group__3__Impl rule__Regex__Group__4 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1398:2: rule__Regex__Group__3__Impl rule__Regex__Group__4
            {
            pushFollow(FOLLOW_rule__Regex__Group__3__Impl_in_rule__Regex__Group__32939);
            rule__Regex__Group__3__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Regex__Group__4_in_rule__Regex__Group__32942);
            rule__Regex__Group__4();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Regex__Group__3


    // $ANTLR start rule__Regex__Group__3__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1405:1: rule__Regex__Group__3__Impl : ( 'tape' ) ;
    public final void rule__Regex__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1409:1: ( ( 'tape' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1410:1: ( 'tape' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1410:1: ( 'tape' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1411:1: 'tape'
            {
             before(grammarAccess.getRegexAccess().getTapeKeyword_3()); 
            match(input,20,FOLLOW_20_in_rule__Regex__Group__3__Impl2970); 
             after(grammarAccess.getRegexAccess().getTapeKeyword_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Regex__Group__3__Impl


    // $ANTLR start rule__Regex__Group__4
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1424:1: rule__Regex__Group__4 : rule__Regex__Group__4__Impl rule__Regex__Group__5 ;
    public final void rule__Regex__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1428:1: ( rule__Regex__Group__4__Impl rule__Regex__Group__5 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1429:2: rule__Regex__Group__4__Impl rule__Regex__Group__5
            {
            pushFollow(FOLLOW_rule__Regex__Group__4__Impl_in_rule__Regex__Group__43001);
            rule__Regex__Group__4__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Regex__Group__5_in_rule__Regex__Group__43004);
            rule__Regex__Group__5();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Regex__Group__4


    // $ANTLR start rule__Regex__Group__4__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1436:1: rule__Regex__Group__4__Impl : ( '=' ) ;
    public final void rule__Regex__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1440:1: ( ( '=' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1441:1: ( '=' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1441:1: ( '=' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1442:1: '='
            {
             before(grammarAccess.getRegexAccess().getEqualsSignKeyword_4()); 
            match(input,21,FOLLOW_21_in_rule__Regex__Group__4__Impl3032); 
             after(grammarAccess.getRegexAccess().getEqualsSignKeyword_4()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Regex__Group__4__Impl


    // $ANTLR start rule__Regex__Group__5
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1455:1: rule__Regex__Group__5 : rule__Regex__Group__5__Impl rule__Regex__Group__6 ;
    public final void rule__Regex__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1459:1: ( rule__Regex__Group__5__Impl rule__Regex__Group__6 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1460:2: rule__Regex__Group__5__Impl rule__Regex__Group__6
            {
            pushFollow(FOLLOW_rule__Regex__Group__5__Impl_in_rule__Regex__Group__53063);
            rule__Regex__Group__5__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Regex__Group__6_in_rule__Regex__Group__53066);
            rule__Regex__Group__6();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Regex__Group__5


    // $ANTLR start rule__Regex__Group__5__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1467:1: rule__Regex__Group__5__Impl : ( ( rule__Regex__TapeAssignment_5 ) ) ;
    public final void rule__Regex__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1471:1: ( ( ( rule__Regex__TapeAssignment_5 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1472:1: ( ( rule__Regex__TapeAssignment_5 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1472:1: ( ( rule__Regex__TapeAssignment_5 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1473:1: ( rule__Regex__TapeAssignment_5 )
            {
             before(grammarAccess.getRegexAccess().getTapeAssignment_5()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1474:1: ( rule__Regex__TapeAssignment_5 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1474:2: rule__Regex__TapeAssignment_5
            {
            pushFollow(FOLLOW_rule__Regex__TapeAssignment_5_in_rule__Regex__Group__5__Impl3093);
            rule__Regex__TapeAssignment_5();
            _fsp--;


            }

             after(grammarAccess.getRegexAccess().getTapeAssignment_5()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Regex__Group__5__Impl


    // $ANTLR start rule__Regex__Group__6
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1484:1: rule__Regex__Group__6 : rule__Regex__Group__6__Impl rule__Regex__Group__7 ;
    public final void rule__Regex__Group__6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1488:1: ( rule__Regex__Group__6__Impl rule__Regex__Group__7 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1489:2: rule__Regex__Group__6__Impl rule__Regex__Group__7
            {
            pushFollow(FOLLOW_rule__Regex__Group__6__Impl_in_rule__Regex__Group__63123);
            rule__Regex__Group__6__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Regex__Group__7_in_rule__Regex__Group__63126);
            rule__Regex__Group__7();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Regex__Group__6


    // $ANTLR start rule__Regex__Group__6__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1496:1: rule__Regex__Group__6__Impl : ( '{' ) ;
    public final void rule__Regex__Group__6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1500:1: ( ( '{' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1501:1: ( '{' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1501:1: ( '{' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1502:1: '{'
            {
             before(grammarAccess.getRegexAccess().getLeftCurlyBracketKeyword_6()); 
            match(input,22,FOLLOW_22_in_rule__Regex__Group__6__Impl3154); 
             after(grammarAccess.getRegexAccess().getLeftCurlyBracketKeyword_6()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Regex__Group__6__Impl


    // $ANTLR start rule__Regex__Group__7
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1515:1: rule__Regex__Group__7 : rule__Regex__Group__7__Impl rule__Regex__Group__8 ;
    public final void rule__Regex__Group__7() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1519:1: ( rule__Regex__Group__7__Impl rule__Regex__Group__8 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1520:2: rule__Regex__Group__7__Impl rule__Regex__Group__8
            {
            pushFollow(FOLLOW_rule__Regex__Group__7__Impl_in_rule__Regex__Group__73185);
            rule__Regex__Group__7__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Regex__Group__8_in_rule__Regex__Group__73188);
            rule__Regex__Group__8();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Regex__Group__7


    // $ANTLR start rule__Regex__Group__7__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1527:1: rule__Regex__Group__7__Impl : ( ( rule__Regex__ExpressionAssignment_7 ) ) ;
    public final void rule__Regex__Group__7__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1531:1: ( ( ( rule__Regex__ExpressionAssignment_7 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1532:1: ( ( rule__Regex__ExpressionAssignment_7 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1532:1: ( ( rule__Regex__ExpressionAssignment_7 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1533:1: ( rule__Regex__ExpressionAssignment_7 )
            {
             before(grammarAccess.getRegexAccess().getExpressionAssignment_7()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1534:1: ( rule__Regex__ExpressionAssignment_7 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1534:2: rule__Regex__ExpressionAssignment_7
            {
            pushFollow(FOLLOW_rule__Regex__ExpressionAssignment_7_in_rule__Regex__Group__7__Impl3215);
            rule__Regex__ExpressionAssignment_7();
            _fsp--;


            }

             after(grammarAccess.getRegexAccess().getExpressionAssignment_7()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Regex__Group__7__Impl


    // $ANTLR start rule__Regex__Group__8
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1544:1: rule__Regex__Group__8 : rule__Regex__Group__8__Impl ;
    public final void rule__Regex__Group__8() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1548:1: ( rule__Regex__Group__8__Impl )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1549:2: rule__Regex__Group__8__Impl
            {
            pushFollow(FOLLOW_rule__Regex__Group__8__Impl_in_rule__Regex__Group__83245);
            rule__Regex__Group__8__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Regex__Group__8


    // $ANTLR start rule__Regex__Group__8__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1555:1: rule__Regex__Group__8__Impl : ( '}' ) ;
    public final void rule__Regex__Group__8__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1559:1: ( ( '}' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1560:1: ( '}' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1560:1: ( '}' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1561:1: '}'
            {
             before(grammarAccess.getRegexAccess().getRightCurlyBracketKeyword_8()); 
            match(input,23,FOLLOW_23_in_rule__Regex__Group__8__Impl3273); 
             after(grammarAccess.getRegexAccess().getRightCurlyBracketKeyword_8()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Regex__Group__8__Impl


    // $ANTLR start rule__Regex__Group_1__0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1592:1: rule__Regex__Group_1__0 : rule__Regex__Group_1__0__Impl rule__Regex__Group_1__1 ;
    public final void rule__Regex__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1596:1: ( rule__Regex__Group_1__0__Impl rule__Regex__Group_1__1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1597:2: rule__Regex__Group_1__0__Impl rule__Regex__Group_1__1
            {
            pushFollow(FOLLOW_rule__Regex__Group_1__0__Impl_in_rule__Regex__Group_1__03322);
            rule__Regex__Group_1__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Regex__Group_1__1_in_rule__Regex__Group_1__03325);
            rule__Regex__Group_1__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Regex__Group_1__0


    // $ANTLR start rule__Regex__Group_1__0__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1604:1: rule__Regex__Group_1__0__Impl : ( ( rule__Regex__NameAssignment_1_0 ) ) ;
    public final void rule__Regex__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1608:1: ( ( ( rule__Regex__NameAssignment_1_0 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1609:1: ( ( rule__Regex__NameAssignment_1_0 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1609:1: ( ( rule__Regex__NameAssignment_1_0 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1610:1: ( rule__Regex__NameAssignment_1_0 )
            {
             before(grammarAccess.getRegexAccess().getNameAssignment_1_0()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1611:1: ( rule__Regex__NameAssignment_1_0 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1611:2: rule__Regex__NameAssignment_1_0
            {
            pushFollow(FOLLOW_rule__Regex__NameAssignment_1_0_in_rule__Regex__Group_1__0__Impl3352);
            rule__Regex__NameAssignment_1_0();
            _fsp--;


            }

             after(grammarAccess.getRegexAccess().getNameAssignment_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Regex__Group_1__0__Impl


    // $ANTLR start rule__Regex__Group_1__1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1621:1: rule__Regex__Group_1__1 : rule__Regex__Group_1__1__Impl ;
    public final void rule__Regex__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1625:1: ( rule__Regex__Group_1__1__Impl )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1626:2: rule__Regex__Group_1__1__Impl
            {
            pushFollow(FOLLOW_rule__Regex__Group_1__1__Impl_in_rule__Regex__Group_1__13382);
            rule__Regex__Group_1__1__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Regex__Group_1__1


    // $ANTLR start rule__Regex__Group_1__1__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1632:1: rule__Regex__Group_1__1__Impl : ( ':' ) ;
    public final void rule__Regex__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1636:1: ( ( ':' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1637:1: ( ':' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1637:1: ( ':' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1638:1: ':'
            {
             before(grammarAccess.getRegexAccess().getColonKeyword_1_1()); 
            match(input,24,FOLLOW_24_in_rule__Regex__Group_1__1__Impl3410); 
             after(grammarAccess.getRegexAccess().getColonKeyword_1_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Regex__Group_1__1__Impl


    // $ANTLR start rule__ANDExpression__Group__0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1655:1: rule__ANDExpression__Group__0 : rule__ANDExpression__Group__0__Impl rule__ANDExpression__Group__1 ;
    public final void rule__ANDExpression__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1659:1: ( rule__ANDExpression__Group__0__Impl rule__ANDExpression__Group__1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1660:2: rule__ANDExpression__Group__0__Impl rule__ANDExpression__Group__1
            {
            pushFollow(FOLLOW_rule__ANDExpression__Group__0__Impl_in_rule__ANDExpression__Group__03445);
            rule__ANDExpression__Group__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__ANDExpression__Group__1_in_rule__ANDExpression__Group__03448);
            rule__ANDExpression__Group__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__ANDExpression__Group__0


    // $ANTLR start rule__ANDExpression__Group__0__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1667:1: rule__ANDExpression__Group__0__Impl : ( ruleORExpression ) ;
    public final void rule__ANDExpression__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1671:1: ( ( ruleORExpression ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1672:1: ( ruleORExpression )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1672:1: ( ruleORExpression )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1673:1: ruleORExpression
            {
             before(grammarAccess.getANDExpressionAccess().getORExpressionParserRuleCall_0()); 
            pushFollow(FOLLOW_ruleORExpression_in_rule__ANDExpression__Group__0__Impl3475);
            ruleORExpression();
            _fsp--;

             after(grammarAccess.getANDExpressionAccess().getORExpressionParserRuleCall_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__ANDExpression__Group__0__Impl


    // $ANTLR start rule__ANDExpression__Group__1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1684:1: rule__ANDExpression__Group__1 : rule__ANDExpression__Group__1__Impl ;
    public final void rule__ANDExpression__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1688:1: ( rule__ANDExpression__Group__1__Impl )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1689:2: rule__ANDExpression__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__ANDExpression__Group__1__Impl_in_rule__ANDExpression__Group__13504);
            rule__ANDExpression__Group__1__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__ANDExpression__Group__1


    // $ANTLR start rule__ANDExpression__Group__1__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1695:1: rule__ANDExpression__Group__1__Impl : ( ( rule__ANDExpression__Group_1__0 )* ) ;
    public final void rule__ANDExpression__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1699:1: ( ( ( rule__ANDExpression__Group_1__0 )* ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1700:1: ( ( rule__ANDExpression__Group_1__0 )* )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1700:1: ( ( rule__ANDExpression__Group_1__0 )* )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1701:1: ( rule__ANDExpression__Group_1__0 )*
            {
             before(grammarAccess.getANDExpressionAccess().getGroup_1()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1702:1: ( rule__ANDExpression__Group_1__0 )*
            loop16:
            do {
                int alt16=2;
                int LA16_0 = input.LA(1);

                if ( (LA16_0==25) ) {
                    alt16=1;
                }


                switch (alt16) {
            	case 1 :
            	    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1702:2: rule__ANDExpression__Group_1__0
            	    {
            	    pushFollow(FOLLOW_rule__ANDExpression__Group_1__0_in_rule__ANDExpression__Group__1__Impl3531);
            	    rule__ANDExpression__Group_1__0();
            	    _fsp--;


            	    }
            	    break;

            	default :
            	    break loop16;
                }
            } while (true);

             after(grammarAccess.getANDExpressionAccess().getGroup_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__ANDExpression__Group__1__Impl


    // $ANTLR start rule__ANDExpression__Group_1__0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1716:1: rule__ANDExpression__Group_1__0 : rule__ANDExpression__Group_1__0__Impl rule__ANDExpression__Group_1__1 ;
    public final void rule__ANDExpression__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1720:1: ( rule__ANDExpression__Group_1__0__Impl rule__ANDExpression__Group_1__1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1721:2: rule__ANDExpression__Group_1__0__Impl rule__ANDExpression__Group_1__1
            {
            pushFollow(FOLLOW_rule__ANDExpression__Group_1__0__Impl_in_rule__ANDExpression__Group_1__03566);
            rule__ANDExpression__Group_1__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__ANDExpression__Group_1__1_in_rule__ANDExpression__Group_1__03569);
            rule__ANDExpression__Group_1__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__ANDExpression__Group_1__0


    // $ANTLR start rule__ANDExpression__Group_1__0__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1728:1: rule__ANDExpression__Group_1__0__Impl : ( () ) ;
    public final void rule__ANDExpression__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1732:1: ( ( () ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1733:1: ( () )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1733:1: ( () )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1734:1: ()
            {
             before(grammarAccess.getANDExpressionAccess().getANDExpressionLeftAction_1_0()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1735:1: ()
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1737:1: 
            {
            }

             after(grammarAccess.getANDExpressionAccess().getANDExpressionLeftAction_1_0()); 

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__ANDExpression__Group_1__0__Impl


    // $ANTLR start rule__ANDExpression__Group_1__1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1747:1: rule__ANDExpression__Group_1__1 : rule__ANDExpression__Group_1__1__Impl rule__ANDExpression__Group_1__2 ;
    public final void rule__ANDExpression__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1751:1: ( rule__ANDExpression__Group_1__1__Impl rule__ANDExpression__Group_1__2 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1752:2: rule__ANDExpression__Group_1__1__Impl rule__ANDExpression__Group_1__2
            {
            pushFollow(FOLLOW_rule__ANDExpression__Group_1__1__Impl_in_rule__ANDExpression__Group_1__13627);
            rule__ANDExpression__Group_1__1__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__ANDExpression__Group_1__2_in_rule__ANDExpression__Group_1__13630);
            rule__ANDExpression__Group_1__2();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__ANDExpression__Group_1__1


    // $ANTLR start rule__ANDExpression__Group_1__1__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1759:1: rule__ANDExpression__Group_1__1__Impl : ( '&' ) ;
    public final void rule__ANDExpression__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1763:1: ( ( '&' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1764:1: ( '&' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1764:1: ( '&' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1765:1: '&'
            {
             before(grammarAccess.getANDExpressionAccess().getAmpersandKeyword_1_1()); 
            match(input,25,FOLLOW_25_in_rule__ANDExpression__Group_1__1__Impl3658); 
             after(grammarAccess.getANDExpressionAccess().getAmpersandKeyword_1_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__ANDExpression__Group_1__1__Impl


    // $ANTLR start rule__ANDExpression__Group_1__2
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1778:1: rule__ANDExpression__Group_1__2 : rule__ANDExpression__Group_1__2__Impl ;
    public final void rule__ANDExpression__Group_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1782:1: ( rule__ANDExpression__Group_1__2__Impl )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1783:2: rule__ANDExpression__Group_1__2__Impl
            {
            pushFollow(FOLLOW_rule__ANDExpression__Group_1__2__Impl_in_rule__ANDExpression__Group_1__23689);
            rule__ANDExpression__Group_1__2__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__ANDExpression__Group_1__2


    // $ANTLR start rule__ANDExpression__Group_1__2__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1789:1: rule__ANDExpression__Group_1__2__Impl : ( ( rule__ANDExpression__RightAssignment_1_2 ) ) ;
    public final void rule__ANDExpression__Group_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1793:1: ( ( ( rule__ANDExpression__RightAssignment_1_2 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1794:1: ( ( rule__ANDExpression__RightAssignment_1_2 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1794:1: ( ( rule__ANDExpression__RightAssignment_1_2 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1795:1: ( rule__ANDExpression__RightAssignment_1_2 )
            {
             before(grammarAccess.getANDExpressionAccess().getRightAssignment_1_2()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1796:1: ( rule__ANDExpression__RightAssignment_1_2 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1796:2: rule__ANDExpression__RightAssignment_1_2
            {
            pushFollow(FOLLOW_rule__ANDExpression__RightAssignment_1_2_in_rule__ANDExpression__Group_1__2__Impl3716);
            rule__ANDExpression__RightAssignment_1_2();
            _fsp--;


            }

             after(grammarAccess.getANDExpressionAccess().getRightAssignment_1_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__ANDExpression__Group_1__2__Impl


    // $ANTLR start rule__ORExpression__Group__0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1812:1: rule__ORExpression__Group__0 : rule__ORExpression__Group__0__Impl rule__ORExpression__Group__1 ;
    public final void rule__ORExpression__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1816:1: ( rule__ORExpression__Group__0__Impl rule__ORExpression__Group__1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1817:2: rule__ORExpression__Group__0__Impl rule__ORExpression__Group__1
            {
            pushFollow(FOLLOW_rule__ORExpression__Group__0__Impl_in_rule__ORExpression__Group__03752);
            rule__ORExpression__Group__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__ORExpression__Group__1_in_rule__ORExpression__Group__03755);
            rule__ORExpression__Group__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__ORExpression__Group__0


    // $ANTLR start rule__ORExpression__Group__0__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1824:1: rule__ORExpression__Group__0__Impl : ( ruleKleeneExpression ) ;
    public final void rule__ORExpression__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1828:1: ( ( ruleKleeneExpression ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1829:1: ( ruleKleeneExpression )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1829:1: ( ruleKleeneExpression )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1830:1: ruleKleeneExpression
            {
             before(grammarAccess.getORExpressionAccess().getKleeneExpressionParserRuleCall_0()); 
            pushFollow(FOLLOW_ruleKleeneExpression_in_rule__ORExpression__Group__0__Impl3782);
            ruleKleeneExpression();
            _fsp--;

             after(grammarAccess.getORExpressionAccess().getKleeneExpressionParserRuleCall_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__ORExpression__Group__0__Impl


    // $ANTLR start rule__ORExpression__Group__1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1841:1: rule__ORExpression__Group__1 : rule__ORExpression__Group__1__Impl ;
    public final void rule__ORExpression__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1845:1: ( rule__ORExpression__Group__1__Impl )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1846:2: rule__ORExpression__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__ORExpression__Group__1__Impl_in_rule__ORExpression__Group__13811);
            rule__ORExpression__Group__1__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__ORExpression__Group__1


    // $ANTLR start rule__ORExpression__Group__1__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1852:1: rule__ORExpression__Group__1__Impl : ( ( rule__ORExpression__Group_1__0 )* ) ;
    public final void rule__ORExpression__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1856:1: ( ( ( rule__ORExpression__Group_1__0 )* ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1857:1: ( ( rule__ORExpression__Group_1__0 )* )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1857:1: ( ( rule__ORExpression__Group_1__0 )* )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1858:1: ( rule__ORExpression__Group_1__0 )*
            {
             before(grammarAccess.getORExpressionAccess().getGroup_1()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1859:1: ( rule__ORExpression__Group_1__0 )*
            loop17:
            do {
                int alt17=2;
                int LA17_0 = input.LA(1);

                if ( (LA17_0==26) ) {
                    alt17=1;
                }


                switch (alt17) {
            	case 1 :
            	    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1859:2: rule__ORExpression__Group_1__0
            	    {
            	    pushFollow(FOLLOW_rule__ORExpression__Group_1__0_in_rule__ORExpression__Group__1__Impl3838);
            	    rule__ORExpression__Group_1__0();
            	    _fsp--;


            	    }
            	    break;

            	default :
            	    break loop17;
                }
            } while (true);

             after(grammarAccess.getORExpressionAccess().getGroup_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__ORExpression__Group__1__Impl


    // $ANTLR start rule__ORExpression__Group_1__0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1873:1: rule__ORExpression__Group_1__0 : rule__ORExpression__Group_1__0__Impl rule__ORExpression__Group_1__1 ;
    public final void rule__ORExpression__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1877:1: ( rule__ORExpression__Group_1__0__Impl rule__ORExpression__Group_1__1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1878:2: rule__ORExpression__Group_1__0__Impl rule__ORExpression__Group_1__1
            {
            pushFollow(FOLLOW_rule__ORExpression__Group_1__0__Impl_in_rule__ORExpression__Group_1__03873);
            rule__ORExpression__Group_1__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__ORExpression__Group_1__1_in_rule__ORExpression__Group_1__03876);
            rule__ORExpression__Group_1__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__ORExpression__Group_1__0


    // $ANTLR start rule__ORExpression__Group_1__0__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1885:1: rule__ORExpression__Group_1__0__Impl : ( () ) ;
    public final void rule__ORExpression__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1889:1: ( ( () ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1890:1: ( () )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1890:1: ( () )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1891:1: ()
            {
             before(grammarAccess.getORExpressionAccess().getORExpressionLeftAction_1_0()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1892:1: ()
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1894:1: 
            {
            }

             after(grammarAccess.getORExpressionAccess().getORExpressionLeftAction_1_0()); 

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__ORExpression__Group_1__0__Impl


    // $ANTLR start rule__ORExpression__Group_1__1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1904:1: rule__ORExpression__Group_1__1 : rule__ORExpression__Group_1__1__Impl rule__ORExpression__Group_1__2 ;
    public final void rule__ORExpression__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1908:1: ( rule__ORExpression__Group_1__1__Impl rule__ORExpression__Group_1__2 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1909:2: rule__ORExpression__Group_1__1__Impl rule__ORExpression__Group_1__2
            {
            pushFollow(FOLLOW_rule__ORExpression__Group_1__1__Impl_in_rule__ORExpression__Group_1__13934);
            rule__ORExpression__Group_1__1__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__ORExpression__Group_1__2_in_rule__ORExpression__Group_1__13937);
            rule__ORExpression__Group_1__2();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__ORExpression__Group_1__1


    // $ANTLR start rule__ORExpression__Group_1__1__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1916:1: rule__ORExpression__Group_1__1__Impl : ( '|' ) ;
    public final void rule__ORExpression__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1920:1: ( ( '|' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1921:1: ( '|' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1921:1: ( '|' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1922:1: '|'
            {
             before(grammarAccess.getORExpressionAccess().getVerticalLineKeyword_1_1()); 
            match(input,26,FOLLOW_26_in_rule__ORExpression__Group_1__1__Impl3965); 
             after(grammarAccess.getORExpressionAccess().getVerticalLineKeyword_1_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__ORExpression__Group_1__1__Impl


    // $ANTLR start rule__ORExpression__Group_1__2
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1935:1: rule__ORExpression__Group_1__2 : rule__ORExpression__Group_1__2__Impl ;
    public final void rule__ORExpression__Group_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1939:1: ( rule__ORExpression__Group_1__2__Impl )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1940:2: rule__ORExpression__Group_1__2__Impl
            {
            pushFollow(FOLLOW_rule__ORExpression__Group_1__2__Impl_in_rule__ORExpression__Group_1__23996);
            rule__ORExpression__Group_1__2__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__ORExpression__Group_1__2


    // $ANTLR start rule__ORExpression__Group_1__2__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1946:1: rule__ORExpression__Group_1__2__Impl : ( ( rule__ORExpression__RightAssignment_1_2 ) ) ;
    public final void rule__ORExpression__Group_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1950:1: ( ( ( rule__ORExpression__RightAssignment_1_2 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1951:1: ( ( rule__ORExpression__RightAssignment_1_2 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1951:1: ( ( rule__ORExpression__RightAssignment_1_2 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1952:1: ( rule__ORExpression__RightAssignment_1_2 )
            {
             before(grammarAccess.getORExpressionAccess().getRightAssignment_1_2()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1953:1: ( rule__ORExpression__RightAssignment_1_2 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1953:2: rule__ORExpression__RightAssignment_1_2
            {
            pushFollow(FOLLOW_rule__ORExpression__RightAssignment_1_2_in_rule__ORExpression__Group_1__2__Impl4023);
            rule__ORExpression__RightAssignment_1_2();
            _fsp--;


            }

             after(grammarAccess.getORExpressionAccess().getRightAssignment_1_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__ORExpression__Group_1__2__Impl


    // $ANTLR start rule__KleeneExpression__Group__0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1969:1: rule__KleeneExpression__Group__0 : rule__KleeneExpression__Group__0__Impl rule__KleeneExpression__Group__1 ;
    public final void rule__KleeneExpression__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1973:1: ( rule__KleeneExpression__Group__0__Impl rule__KleeneExpression__Group__1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1974:2: rule__KleeneExpression__Group__0__Impl rule__KleeneExpression__Group__1
            {
            pushFollow(FOLLOW_rule__KleeneExpression__Group__0__Impl_in_rule__KleeneExpression__Group__04059);
            rule__KleeneExpression__Group__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__KleeneExpression__Group__1_in_rule__KleeneExpression__Group__04062);
            rule__KleeneExpression__Group__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__KleeneExpression__Group__0


    // $ANTLR start rule__KleeneExpression__Group__0__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1981:1: rule__KleeneExpression__Group__0__Impl : ( rulePrimaryExpression ) ;
    public final void rule__KleeneExpression__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1985:1: ( ( rulePrimaryExpression ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1986:1: ( rulePrimaryExpression )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1986:1: ( rulePrimaryExpression )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1987:1: rulePrimaryExpression
            {
             before(grammarAccess.getKleeneExpressionAccess().getPrimaryExpressionParserRuleCall_0()); 
            pushFollow(FOLLOW_rulePrimaryExpression_in_rule__KleeneExpression__Group__0__Impl4089);
            rulePrimaryExpression();
            _fsp--;

             after(grammarAccess.getKleeneExpressionAccess().getPrimaryExpressionParserRuleCall_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__KleeneExpression__Group__0__Impl


    // $ANTLR start rule__KleeneExpression__Group__1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:1998:1: rule__KleeneExpression__Group__1 : rule__KleeneExpression__Group__1__Impl ;
    public final void rule__KleeneExpression__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2002:1: ( rule__KleeneExpression__Group__1__Impl )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2003:2: rule__KleeneExpression__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__KleeneExpression__Group__1__Impl_in_rule__KleeneExpression__Group__14118);
            rule__KleeneExpression__Group__1__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__KleeneExpression__Group__1


    // $ANTLR start rule__KleeneExpression__Group__1__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2009:1: rule__KleeneExpression__Group__1__Impl : ( ( rule__KleeneExpression__Group_1__0 )? ) ;
    public final void rule__KleeneExpression__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2013:1: ( ( ( rule__KleeneExpression__Group_1__0 )? ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2014:1: ( ( rule__KleeneExpression__Group_1__0 )? )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2014:1: ( ( rule__KleeneExpression__Group_1__0 )? )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2015:1: ( rule__KleeneExpression__Group_1__0 )?
            {
             before(grammarAccess.getKleeneExpressionAccess().getGroup_1()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2016:1: ( rule__KleeneExpression__Group_1__0 )?
            int alt18=2;
            int LA18_0 = input.LA(1);

            if ( (LA18_0==27) ) {
                alt18=1;
            }
            switch (alt18) {
                case 1 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2016:2: rule__KleeneExpression__Group_1__0
                    {
                    pushFollow(FOLLOW_rule__KleeneExpression__Group_1__0_in_rule__KleeneExpression__Group__1__Impl4145);
                    rule__KleeneExpression__Group_1__0();
                    _fsp--;


                    }
                    break;

            }

             after(grammarAccess.getKleeneExpressionAccess().getGroup_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__KleeneExpression__Group__1__Impl


    // $ANTLR start rule__KleeneExpression__Group_1__0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2030:1: rule__KleeneExpression__Group_1__0 : rule__KleeneExpression__Group_1__0__Impl rule__KleeneExpression__Group_1__1 ;
    public final void rule__KleeneExpression__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2034:1: ( rule__KleeneExpression__Group_1__0__Impl rule__KleeneExpression__Group_1__1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2035:2: rule__KleeneExpression__Group_1__0__Impl rule__KleeneExpression__Group_1__1
            {
            pushFollow(FOLLOW_rule__KleeneExpression__Group_1__0__Impl_in_rule__KleeneExpression__Group_1__04180);
            rule__KleeneExpression__Group_1__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__KleeneExpression__Group_1__1_in_rule__KleeneExpression__Group_1__04183);
            rule__KleeneExpression__Group_1__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__KleeneExpression__Group_1__0


    // $ANTLR start rule__KleeneExpression__Group_1__0__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2042:1: rule__KleeneExpression__Group_1__0__Impl : ( () ) ;
    public final void rule__KleeneExpression__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2046:1: ( ( () ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2047:1: ( () )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2047:1: ( () )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2048:1: ()
            {
             before(grammarAccess.getKleeneExpressionAccess().getKleeneExpressionChildExpressionAction_1_0()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2049:1: ()
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2051:1: 
            {
            }

             after(grammarAccess.getKleeneExpressionAccess().getKleeneExpressionChildExpressionAction_1_0()); 

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__KleeneExpression__Group_1__0__Impl


    // $ANTLR start rule__KleeneExpression__Group_1__1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2061:1: rule__KleeneExpression__Group_1__1 : rule__KleeneExpression__Group_1__1__Impl ;
    public final void rule__KleeneExpression__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2065:1: ( rule__KleeneExpression__Group_1__1__Impl )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2066:2: rule__KleeneExpression__Group_1__1__Impl
            {
            pushFollow(FOLLOW_rule__KleeneExpression__Group_1__1__Impl_in_rule__KleeneExpression__Group_1__14241);
            rule__KleeneExpression__Group_1__1__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__KleeneExpression__Group_1__1


    // $ANTLR start rule__KleeneExpression__Group_1__1__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2072:1: rule__KleeneExpression__Group_1__1__Impl : ( '*' ) ;
    public final void rule__KleeneExpression__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2076:1: ( ( '*' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2077:1: ( '*' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2077:1: ( '*' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2078:1: '*'
            {
             before(grammarAccess.getKleeneExpressionAccess().getAsteriskKeyword_1_1()); 
            match(input,27,FOLLOW_27_in_rule__KleeneExpression__Group_1__1__Impl4269); 
             after(grammarAccess.getKleeneExpressionAccess().getAsteriskKeyword_1_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__KleeneExpression__Group_1__1__Impl


    // $ANTLR start rule__PrimaryExpression__Group_0__0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2095:1: rule__PrimaryExpression__Group_0__0 : rule__PrimaryExpression__Group_0__0__Impl rule__PrimaryExpression__Group_0__1 ;
    public final void rule__PrimaryExpression__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2099:1: ( rule__PrimaryExpression__Group_0__0__Impl rule__PrimaryExpression__Group_0__1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2100:2: rule__PrimaryExpression__Group_0__0__Impl rule__PrimaryExpression__Group_0__1
            {
            pushFollow(FOLLOW_rule__PrimaryExpression__Group_0__0__Impl_in_rule__PrimaryExpression__Group_0__04304);
            rule__PrimaryExpression__Group_0__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__PrimaryExpression__Group_0__1_in_rule__PrimaryExpression__Group_0__04307);
            rule__PrimaryExpression__Group_0__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__PrimaryExpression__Group_0__0


    // $ANTLR start rule__PrimaryExpression__Group_0__0__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2107:1: rule__PrimaryExpression__Group_0__0__Impl : ( '(' ) ;
    public final void rule__PrimaryExpression__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2111:1: ( ( '(' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2112:1: ( '(' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2112:1: ( '(' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2113:1: '('
            {
             before(grammarAccess.getPrimaryExpressionAccess().getLeftParenthesisKeyword_0_0()); 
            match(input,28,FOLLOW_28_in_rule__PrimaryExpression__Group_0__0__Impl4335); 
             after(grammarAccess.getPrimaryExpressionAccess().getLeftParenthesisKeyword_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__PrimaryExpression__Group_0__0__Impl


    // $ANTLR start rule__PrimaryExpression__Group_0__1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2126:1: rule__PrimaryExpression__Group_0__1 : rule__PrimaryExpression__Group_0__1__Impl rule__PrimaryExpression__Group_0__2 ;
    public final void rule__PrimaryExpression__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2130:1: ( rule__PrimaryExpression__Group_0__1__Impl rule__PrimaryExpression__Group_0__2 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2131:2: rule__PrimaryExpression__Group_0__1__Impl rule__PrimaryExpression__Group_0__2
            {
            pushFollow(FOLLOW_rule__PrimaryExpression__Group_0__1__Impl_in_rule__PrimaryExpression__Group_0__14366);
            rule__PrimaryExpression__Group_0__1__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__PrimaryExpression__Group_0__2_in_rule__PrimaryExpression__Group_0__14369);
            rule__PrimaryExpression__Group_0__2();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__PrimaryExpression__Group_0__1


    // $ANTLR start rule__PrimaryExpression__Group_0__1__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2138:1: rule__PrimaryExpression__Group_0__1__Impl : ( ruleExpression ) ;
    public final void rule__PrimaryExpression__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2142:1: ( ( ruleExpression ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2143:1: ( ruleExpression )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2143:1: ( ruleExpression )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2144:1: ruleExpression
            {
             before(grammarAccess.getPrimaryExpressionAccess().getExpressionParserRuleCall_0_1()); 
            pushFollow(FOLLOW_ruleExpression_in_rule__PrimaryExpression__Group_0__1__Impl4396);
            ruleExpression();
            _fsp--;

             after(grammarAccess.getPrimaryExpressionAccess().getExpressionParserRuleCall_0_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__PrimaryExpression__Group_0__1__Impl


    // $ANTLR start rule__PrimaryExpression__Group_0__2
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2155:1: rule__PrimaryExpression__Group_0__2 : rule__PrimaryExpression__Group_0__2__Impl ;
    public final void rule__PrimaryExpression__Group_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2159:1: ( rule__PrimaryExpression__Group_0__2__Impl )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2160:2: rule__PrimaryExpression__Group_0__2__Impl
            {
            pushFollow(FOLLOW_rule__PrimaryExpression__Group_0__2__Impl_in_rule__PrimaryExpression__Group_0__24425);
            rule__PrimaryExpression__Group_0__2__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__PrimaryExpression__Group_0__2


    // $ANTLR start rule__PrimaryExpression__Group_0__2__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2166:1: rule__PrimaryExpression__Group_0__2__Impl : ( ')' ) ;
    public final void rule__PrimaryExpression__Group_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2170:1: ( ( ')' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2171:1: ( ')' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2171:1: ( ')' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2172:1: ')'
            {
             before(grammarAccess.getPrimaryExpressionAccess().getRightParenthesisKeyword_0_2()); 
            match(input,29,FOLLOW_29_in_rule__PrimaryExpression__Group_0__2__Impl4453); 
             after(grammarAccess.getPrimaryExpressionAccess().getRightParenthesisKeyword_0_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__PrimaryExpression__Group_0__2__Impl


    // $ANTLR start rule__Grammar__Group__0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2191:1: rule__Grammar__Group__0 : rule__Grammar__Group__0__Impl rule__Grammar__Group__1 ;
    public final void rule__Grammar__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2195:1: ( rule__Grammar__Group__0__Impl rule__Grammar__Group__1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2196:2: rule__Grammar__Group__0__Impl rule__Grammar__Group__1
            {
            pushFollow(FOLLOW_rule__Grammar__Group__0__Impl_in_rule__Grammar__Group__04490);
            rule__Grammar__Group__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Grammar__Group__1_in_rule__Grammar__Group__04493);
            rule__Grammar__Group__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Grammar__Group__0


    // $ANTLR start rule__Grammar__Group__0__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2203:1: rule__Grammar__Group__0__Impl : ( () ) ;
    public final void rule__Grammar__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2207:1: ( ( () ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2208:1: ( () )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2208:1: ( () )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2209:1: ()
            {
             before(grammarAccess.getGrammarAccess().getGrammarAction_0()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2210:1: ()
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2212:1: 
            {
            }

             after(grammarAccess.getGrammarAccess().getGrammarAction_0()); 

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Grammar__Group__0__Impl


    // $ANTLR start rule__Grammar__Group__1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2222:1: rule__Grammar__Group__1 : rule__Grammar__Group__1__Impl rule__Grammar__Group__2 ;
    public final void rule__Grammar__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2226:1: ( rule__Grammar__Group__1__Impl rule__Grammar__Group__2 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2227:2: rule__Grammar__Group__1__Impl rule__Grammar__Group__2
            {
            pushFollow(FOLLOW_rule__Grammar__Group__1__Impl_in_rule__Grammar__Group__14551);
            rule__Grammar__Group__1__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Grammar__Group__2_in_rule__Grammar__Group__14554);
            rule__Grammar__Group__2();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Grammar__Group__1


    // $ANTLR start rule__Grammar__Group__1__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2234:1: rule__Grammar__Group__1__Impl : ( ( rule__Grammar__Group_1__0 )? ) ;
    public final void rule__Grammar__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2238:1: ( ( ( rule__Grammar__Group_1__0 )? ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2239:1: ( ( rule__Grammar__Group_1__0 )? )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2239:1: ( ( rule__Grammar__Group_1__0 )? )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2240:1: ( rule__Grammar__Group_1__0 )?
            {
             before(grammarAccess.getGrammarAccess().getGroup_1()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2241:1: ( rule__Grammar__Group_1__0 )?
            int alt19=2;
            int LA19_0 = input.LA(1);

            if ( (LA19_0==RULE_ID) ) {
                alt19=1;
            }
            switch (alt19) {
                case 1 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2241:2: rule__Grammar__Group_1__0
                    {
                    pushFollow(FOLLOW_rule__Grammar__Group_1__0_in_rule__Grammar__Group__1__Impl4581);
                    rule__Grammar__Group_1__0();
                    _fsp--;


                    }
                    break;

            }

             after(grammarAccess.getGrammarAccess().getGroup_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Grammar__Group__1__Impl


    // $ANTLR start rule__Grammar__Group__2
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2251:1: rule__Grammar__Group__2 : rule__Grammar__Group__2__Impl rule__Grammar__Group__3 ;
    public final void rule__Grammar__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2255:1: ( rule__Grammar__Group__2__Impl rule__Grammar__Group__3 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2256:2: rule__Grammar__Group__2__Impl rule__Grammar__Group__3
            {
            pushFollow(FOLLOW_rule__Grammar__Group__2__Impl_in_rule__Grammar__Group__24612);
            rule__Grammar__Group__2__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Grammar__Group__3_in_rule__Grammar__Group__24615);
            rule__Grammar__Group__3();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Grammar__Group__2


    // $ANTLR start rule__Grammar__Group__2__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2263:1: rule__Grammar__Group__2__Impl : ( 'grammar' ) ;
    public final void rule__Grammar__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2267:1: ( ( 'grammar' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2268:1: ( 'grammar' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2268:1: ( 'grammar' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2269:1: 'grammar'
            {
             before(grammarAccess.getGrammarAccess().getGrammarKeyword_2()); 
            match(input,30,FOLLOW_30_in_rule__Grammar__Group__2__Impl4643); 
             after(grammarAccess.getGrammarAccess().getGrammarKeyword_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Grammar__Group__2__Impl


    // $ANTLR start rule__Grammar__Group__3
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2282:1: rule__Grammar__Group__3 : rule__Grammar__Group__3__Impl rule__Grammar__Group__4 ;
    public final void rule__Grammar__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2286:1: ( rule__Grammar__Group__3__Impl rule__Grammar__Group__4 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2287:2: rule__Grammar__Group__3__Impl rule__Grammar__Group__4
            {
            pushFollow(FOLLOW_rule__Grammar__Group__3__Impl_in_rule__Grammar__Group__34674);
            rule__Grammar__Group__3__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Grammar__Group__4_in_rule__Grammar__Group__34677);
            rule__Grammar__Group__4();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Grammar__Group__3


    // $ANTLR start rule__Grammar__Group__3__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2294:1: rule__Grammar__Group__3__Impl : ( '{' ) ;
    public final void rule__Grammar__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2298:1: ( ( '{' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2299:1: ( '{' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2299:1: ( '{' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2300:1: '{'
            {
             before(grammarAccess.getGrammarAccess().getLeftCurlyBracketKeyword_3()); 
            match(input,22,FOLLOW_22_in_rule__Grammar__Group__3__Impl4705); 
             after(grammarAccess.getGrammarAccess().getLeftCurlyBracketKeyword_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Grammar__Group__3__Impl


    // $ANTLR start rule__Grammar__Group__4
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2313:1: rule__Grammar__Group__4 : rule__Grammar__Group__4__Impl ;
    public final void rule__Grammar__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2317:1: ( rule__Grammar__Group__4__Impl )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2318:2: rule__Grammar__Group__4__Impl
            {
            pushFollow(FOLLOW_rule__Grammar__Group__4__Impl_in_rule__Grammar__Group__44736);
            rule__Grammar__Group__4__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Grammar__Group__4


    // $ANTLR start rule__Grammar__Group__4__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2324:1: rule__Grammar__Group__4__Impl : ( '}' ) ;
    public final void rule__Grammar__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2328:1: ( ( '}' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2329:1: ( '}' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2329:1: ( '}' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2330:1: '}'
            {
             before(grammarAccess.getGrammarAccess().getRightCurlyBracketKeyword_4()); 
            match(input,23,FOLLOW_23_in_rule__Grammar__Group__4__Impl4764); 
             after(grammarAccess.getGrammarAccess().getRightCurlyBracketKeyword_4()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Grammar__Group__4__Impl


    // $ANTLR start rule__Grammar__Group_1__0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2353:1: rule__Grammar__Group_1__0 : rule__Grammar__Group_1__0__Impl rule__Grammar__Group_1__1 ;
    public final void rule__Grammar__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2357:1: ( rule__Grammar__Group_1__0__Impl rule__Grammar__Group_1__1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2358:2: rule__Grammar__Group_1__0__Impl rule__Grammar__Group_1__1
            {
            pushFollow(FOLLOW_rule__Grammar__Group_1__0__Impl_in_rule__Grammar__Group_1__04805);
            rule__Grammar__Group_1__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Grammar__Group_1__1_in_rule__Grammar__Group_1__04808);
            rule__Grammar__Group_1__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Grammar__Group_1__0


    // $ANTLR start rule__Grammar__Group_1__0__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2365:1: rule__Grammar__Group_1__0__Impl : ( ( rule__Grammar__NameAssignment_1_0 ) ) ;
    public final void rule__Grammar__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2369:1: ( ( ( rule__Grammar__NameAssignment_1_0 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2370:1: ( ( rule__Grammar__NameAssignment_1_0 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2370:1: ( ( rule__Grammar__NameAssignment_1_0 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2371:1: ( rule__Grammar__NameAssignment_1_0 )
            {
             before(grammarAccess.getGrammarAccess().getNameAssignment_1_0()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2372:1: ( rule__Grammar__NameAssignment_1_0 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2372:2: rule__Grammar__NameAssignment_1_0
            {
            pushFollow(FOLLOW_rule__Grammar__NameAssignment_1_0_in_rule__Grammar__Group_1__0__Impl4835);
            rule__Grammar__NameAssignment_1_0();
            _fsp--;


            }

             after(grammarAccess.getGrammarAccess().getNameAssignment_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Grammar__Group_1__0__Impl


    // $ANTLR start rule__Grammar__Group_1__1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2382:1: rule__Grammar__Group_1__1 : rule__Grammar__Group_1__1__Impl ;
    public final void rule__Grammar__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2386:1: ( rule__Grammar__Group_1__1__Impl )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2387:2: rule__Grammar__Group_1__1__Impl
            {
            pushFollow(FOLLOW_rule__Grammar__Group_1__1__Impl_in_rule__Grammar__Group_1__14865);
            rule__Grammar__Group_1__1__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Grammar__Group_1__1


    // $ANTLR start rule__Grammar__Group_1__1__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2393:1: rule__Grammar__Group_1__1__Impl : ( ':' ) ;
    public final void rule__Grammar__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2397:1: ( ( ':' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2398:1: ( ':' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2398:1: ( ':' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2399:1: ':'
            {
             before(grammarAccess.getGrammarAccess().getColonKeyword_1_1()); 
            match(input,24,FOLLOW_24_in_rule__Grammar__Group_1__1__Impl4893); 
             after(grammarAccess.getGrammarAccess().getColonKeyword_1_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Grammar__Group_1__1__Impl


    // $ANTLR start rule__Transitions__Group__0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2416:1: rule__Transitions__Group__0 : rule__Transitions__Group__0__Impl rule__Transitions__Group__1 ;
    public final void rule__Transitions__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2420:1: ( rule__Transitions__Group__0__Impl rule__Transitions__Group__1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2421:2: rule__Transitions__Group__0__Impl rule__Transitions__Group__1
            {
            pushFollow(FOLLOW_rule__Transitions__Group__0__Impl_in_rule__Transitions__Group__04928);
            rule__Transitions__Group__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Transitions__Group__1_in_rule__Transitions__Group__04931);
            rule__Transitions__Group__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transitions__Group__0


    // $ANTLR start rule__Transitions__Group__0__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2428:1: rule__Transitions__Group__0__Impl : ( () ) ;
    public final void rule__Transitions__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2432:1: ( ( () ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2433:1: ( () )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2433:1: ( () )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2434:1: ()
            {
             before(grammarAccess.getTransitionsAccess().getTransitionsTableAction_0()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2435:1: ()
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2437:1: 
            {
            }

             after(grammarAccess.getTransitionsAccess().getTransitionsTableAction_0()); 

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transitions__Group__0__Impl


    // $ANTLR start rule__Transitions__Group__1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2447:1: rule__Transitions__Group__1 : rule__Transitions__Group__1__Impl rule__Transitions__Group__2 ;
    public final void rule__Transitions__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2451:1: ( rule__Transitions__Group__1__Impl rule__Transitions__Group__2 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2452:2: rule__Transitions__Group__1__Impl rule__Transitions__Group__2
            {
            pushFollow(FOLLOW_rule__Transitions__Group__1__Impl_in_rule__Transitions__Group__14989);
            rule__Transitions__Group__1__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Transitions__Group__2_in_rule__Transitions__Group__14992);
            rule__Transitions__Group__2();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transitions__Group__1


    // $ANTLR start rule__Transitions__Group__1__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2459:1: rule__Transitions__Group__1__Impl : ( ( rule__Transitions__Group_1__0 )? ) ;
    public final void rule__Transitions__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2463:1: ( ( ( rule__Transitions__Group_1__0 )? ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2464:1: ( ( rule__Transitions__Group_1__0 )? )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2464:1: ( ( rule__Transitions__Group_1__0 )? )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2465:1: ( rule__Transitions__Group_1__0 )?
            {
             before(grammarAccess.getTransitionsAccess().getGroup_1()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2466:1: ( rule__Transitions__Group_1__0 )?
            int alt20=2;
            int LA20_0 = input.LA(1);

            if ( (LA20_0==RULE_ID) ) {
                alt20=1;
            }
            switch (alt20) {
                case 1 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2466:2: rule__Transitions__Group_1__0
                    {
                    pushFollow(FOLLOW_rule__Transitions__Group_1__0_in_rule__Transitions__Group__1__Impl5019);
                    rule__Transitions__Group_1__0();
                    _fsp--;


                    }
                    break;

            }

             after(grammarAccess.getTransitionsAccess().getGroup_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transitions__Group__1__Impl


    // $ANTLR start rule__Transitions__Group__2
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2476:1: rule__Transitions__Group__2 : rule__Transitions__Group__2__Impl rule__Transitions__Group__3 ;
    public final void rule__Transitions__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2480:1: ( rule__Transitions__Group__2__Impl rule__Transitions__Group__3 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2481:2: rule__Transitions__Group__2__Impl rule__Transitions__Group__3
            {
            pushFollow(FOLLOW_rule__Transitions__Group__2__Impl_in_rule__Transitions__Group__25050);
            rule__Transitions__Group__2__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Transitions__Group__3_in_rule__Transitions__Group__25053);
            rule__Transitions__Group__3();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transitions__Group__2


    // $ANTLR start rule__Transitions__Group__2__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2488:1: rule__Transitions__Group__2__Impl : ( 'transitions' ) ;
    public final void rule__Transitions__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2492:1: ( ( 'transitions' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2493:1: ( 'transitions' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2493:1: ( 'transitions' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2494:1: 'transitions'
            {
             before(grammarAccess.getTransitionsAccess().getTransitionsKeyword_2()); 
            match(input,31,FOLLOW_31_in_rule__Transitions__Group__2__Impl5081); 
             after(grammarAccess.getTransitionsAccess().getTransitionsKeyword_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transitions__Group__2__Impl


    // $ANTLR start rule__Transitions__Group__3
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2507:1: rule__Transitions__Group__3 : rule__Transitions__Group__3__Impl rule__Transitions__Group__4 ;
    public final void rule__Transitions__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2511:1: ( rule__Transitions__Group__3__Impl rule__Transitions__Group__4 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2512:2: rule__Transitions__Group__3__Impl rule__Transitions__Group__4
            {
            pushFollow(FOLLOW_rule__Transitions__Group__3__Impl_in_rule__Transitions__Group__35112);
            rule__Transitions__Group__3__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Transitions__Group__4_in_rule__Transitions__Group__35115);
            rule__Transitions__Group__4();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transitions__Group__3


    // $ANTLR start rule__Transitions__Group__3__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2519:1: rule__Transitions__Group__3__Impl : ( ( rule__Transitions__UnorderedGroup_3 ) ) ;
    public final void rule__Transitions__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2523:1: ( ( ( rule__Transitions__UnorderedGroup_3 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2524:1: ( ( rule__Transitions__UnorderedGroup_3 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2524:1: ( ( rule__Transitions__UnorderedGroup_3 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2525:1: ( rule__Transitions__UnorderedGroup_3 )
            {
             before(grammarAccess.getTransitionsAccess().getUnorderedGroup_3()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2526:1: ( rule__Transitions__UnorderedGroup_3 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2526:2: rule__Transitions__UnorderedGroup_3
            {
            pushFollow(FOLLOW_rule__Transitions__UnorderedGroup_3_in_rule__Transitions__Group__3__Impl5142);
            rule__Transitions__UnorderedGroup_3();
            _fsp--;


            }

             after(grammarAccess.getTransitionsAccess().getUnorderedGroup_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transitions__Group__3__Impl


    // $ANTLR start rule__Transitions__Group__4
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2536:1: rule__Transitions__Group__4 : rule__Transitions__Group__4__Impl rule__Transitions__Group__5 ;
    public final void rule__Transitions__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2540:1: ( rule__Transitions__Group__4__Impl rule__Transitions__Group__5 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2541:2: rule__Transitions__Group__4__Impl rule__Transitions__Group__5
            {
            pushFollow(FOLLOW_rule__Transitions__Group__4__Impl_in_rule__Transitions__Group__45172);
            rule__Transitions__Group__4__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Transitions__Group__5_in_rule__Transitions__Group__45175);
            rule__Transitions__Group__5();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transitions__Group__4


    // $ANTLR start rule__Transitions__Group__4__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2548:1: rule__Transitions__Group__4__Impl : ( '{' ) ;
    public final void rule__Transitions__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2552:1: ( ( '{' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2553:1: ( '{' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2553:1: ( '{' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2554:1: '{'
            {
             before(grammarAccess.getTransitionsAccess().getLeftCurlyBracketKeyword_4()); 
            match(input,22,FOLLOW_22_in_rule__Transitions__Group__4__Impl5203); 
             after(grammarAccess.getTransitionsAccess().getLeftCurlyBracketKeyword_4()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transitions__Group__4__Impl


    // $ANTLR start rule__Transitions__Group__5
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2567:1: rule__Transitions__Group__5 : rule__Transitions__Group__5__Impl rule__Transitions__Group__6 ;
    public final void rule__Transitions__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2571:1: ( rule__Transitions__Group__5__Impl rule__Transitions__Group__6 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2572:2: rule__Transitions__Group__5__Impl rule__Transitions__Group__6
            {
            pushFollow(FOLLOW_rule__Transitions__Group__5__Impl_in_rule__Transitions__Group__55234);
            rule__Transitions__Group__5__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Transitions__Group__6_in_rule__Transitions__Group__55237);
            rule__Transitions__Group__6();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transitions__Group__5


    // $ANTLR start rule__Transitions__Group__5__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2579:1: rule__Transitions__Group__5__Impl : ( ( rule__Transitions__TransitionsAssignment_5 )* ) ;
    public final void rule__Transitions__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2583:1: ( ( ( rule__Transitions__TransitionsAssignment_5 )* ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2584:1: ( ( rule__Transitions__TransitionsAssignment_5 )* )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2584:1: ( ( rule__Transitions__TransitionsAssignment_5 )* )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2585:1: ( rule__Transitions__TransitionsAssignment_5 )*
            {
             before(grammarAccess.getTransitionsAccess().getTransitionsAssignment_5()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2586:1: ( rule__Transitions__TransitionsAssignment_5 )*
            loop21:
            do {
                int alt21=2;
                int LA21_0 = input.LA(1);

                if ( (LA21_0==RULE_ID) ) {
                    alt21=1;
                }


                switch (alt21) {
            	case 1 :
            	    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2586:2: rule__Transitions__TransitionsAssignment_5
            	    {
            	    pushFollow(FOLLOW_rule__Transitions__TransitionsAssignment_5_in_rule__Transitions__Group__5__Impl5264);
            	    rule__Transitions__TransitionsAssignment_5();
            	    _fsp--;


            	    }
            	    break;

            	default :
            	    break loop21;
                }
            } while (true);

             after(grammarAccess.getTransitionsAccess().getTransitionsAssignment_5()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transitions__Group__5__Impl


    // $ANTLR start rule__Transitions__Group__6
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2596:1: rule__Transitions__Group__6 : rule__Transitions__Group__6__Impl ;
    public final void rule__Transitions__Group__6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2600:1: ( rule__Transitions__Group__6__Impl )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2601:2: rule__Transitions__Group__6__Impl
            {
            pushFollow(FOLLOW_rule__Transitions__Group__6__Impl_in_rule__Transitions__Group__65295);
            rule__Transitions__Group__6__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transitions__Group__6


    // $ANTLR start rule__Transitions__Group__6__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2607:1: rule__Transitions__Group__6__Impl : ( '}' ) ;
    public final void rule__Transitions__Group__6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2611:1: ( ( '}' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2612:1: ( '}' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2612:1: ( '}' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2613:1: '}'
            {
             before(grammarAccess.getTransitionsAccess().getRightCurlyBracketKeyword_6()); 
            match(input,23,FOLLOW_23_in_rule__Transitions__Group__6__Impl5323); 
             after(grammarAccess.getTransitionsAccess().getRightCurlyBracketKeyword_6()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transitions__Group__6__Impl


    // $ANTLR start rule__Transitions__Group_1__0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2640:1: rule__Transitions__Group_1__0 : rule__Transitions__Group_1__0__Impl rule__Transitions__Group_1__1 ;
    public final void rule__Transitions__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2644:1: ( rule__Transitions__Group_1__0__Impl rule__Transitions__Group_1__1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2645:2: rule__Transitions__Group_1__0__Impl rule__Transitions__Group_1__1
            {
            pushFollow(FOLLOW_rule__Transitions__Group_1__0__Impl_in_rule__Transitions__Group_1__05368);
            rule__Transitions__Group_1__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Transitions__Group_1__1_in_rule__Transitions__Group_1__05371);
            rule__Transitions__Group_1__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transitions__Group_1__0


    // $ANTLR start rule__Transitions__Group_1__0__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2652:1: rule__Transitions__Group_1__0__Impl : ( ( rule__Transitions__NameAssignment_1_0 ) ) ;
    public final void rule__Transitions__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2656:1: ( ( ( rule__Transitions__NameAssignment_1_0 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2657:1: ( ( rule__Transitions__NameAssignment_1_0 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2657:1: ( ( rule__Transitions__NameAssignment_1_0 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2658:1: ( rule__Transitions__NameAssignment_1_0 )
            {
             before(grammarAccess.getTransitionsAccess().getNameAssignment_1_0()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2659:1: ( rule__Transitions__NameAssignment_1_0 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2659:2: rule__Transitions__NameAssignment_1_0
            {
            pushFollow(FOLLOW_rule__Transitions__NameAssignment_1_0_in_rule__Transitions__Group_1__0__Impl5398);
            rule__Transitions__NameAssignment_1_0();
            _fsp--;


            }

             after(grammarAccess.getTransitionsAccess().getNameAssignment_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transitions__Group_1__0__Impl


    // $ANTLR start rule__Transitions__Group_1__1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2669:1: rule__Transitions__Group_1__1 : rule__Transitions__Group_1__1__Impl ;
    public final void rule__Transitions__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2673:1: ( rule__Transitions__Group_1__1__Impl )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2674:2: rule__Transitions__Group_1__1__Impl
            {
            pushFollow(FOLLOW_rule__Transitions__Group_1__1__Impl_in_rule__Transitions__Group_1__15428);
            rule__Transitions__Group_1__1__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transitions__Group_1__1


    // $ANTLR start rule__Transitions__Group_1__1__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2680:1: rule__Transitions__Group_1__1__Impl : ( ':' ) ;
    public final void rule__Transitions__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2684:1: ( ( ':' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2685:1: ( ':' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2685:1: ( ':' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2686:1: ':'
            {
             before(grammarAccess.getTransitionsAccess().getColonKeyword_1_1()); 
            match(input,24,FOLLOW_24_in_rule__Transitions__Group_1__1__Impl5456); 
             after(grammarAccess.getTransitionsAccess().getColonKeyword_1_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transitions__Group_1__1__Impl


    // $ANTLR start rule__Transitions__Group_3_0__0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2703:1: rule__Transitions__Group_3_0__0 : rule__Transitions__Group_3_0__0__Impl rule__Transitions__Group_3_0__1 ;
    public final void rule__Transitions__Group_3_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2707:1: ( rule__Transitions__Group_3_0__0__Impl rule__Transitions__Group_3_0__1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2708:2: rule__Transitions__Group_3_0__0__Impl rule__Transitions__Group_3_0__1
            {
            pushFollow(FOLLOW_rule__Transitions__Group_3_0__0__Impl_in_rule__Transitions__Group_3_0__05491);
            rule__Transitions__Group_3_0__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Transitions__Group_3_0__1_in_rule__Transitions__Group_3_0__05494);
            rule__Transitions__Group_3_0__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transitions__Group_3_0__0


    // $ANTLR start rule__Transitions__Group_3_0__0__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2715:1: rule__Transitions__Group_3_0__0__Impl : ( 'tape' ) ;
    public final void rule__Transitions__Group_3_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2719:1: ( ( 'tape' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2720:1: ( 'tape' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2720:1: ( 'tape' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2721:1: 'tape'
            {
             before(grammarAccess.getTransitionsAccess().getTapeKeyword_3_0_0()); 
            match(input,20,FOLLOW_20_in_rule__Transitions__Group_3_0__0__Impl5522); 
             after(grammarAccess.getTransitionsAccess().getTapeKeyword_3_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transitions__Group_3_0__0__Impl


    // $ANTLR start rule__Transitions__Group_3_0__1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2734:1: rule__Transitions__Group_3_0__1 : rule__Transitions__Group_3_0__1__Impl rule__Transitions__Group_3_0__2 ;
    public final void rule__Transitions__Group_3_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2738:1: ( rule__Transitions__Group_3_0__1__Impl rule__Transitions__Group_3_0__2 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2739:2: rule__Transitions__Group_3_0__1__Impl rule__Transitions__Group_3_0__2
            {
            pushFollow(FOLLOW_rule__Transitions__Group_3_0__1__Impl_in_rule__Transitions__Group_3_0__15553);
            rule__Transitions__Group_3_0__1__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Transitions__Group_3_0__2_in_rule__Transitions__Group_3_0__15556);
            rule__Transitions__Group_3_0__2();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transitions__Group_3_0__1


    // $ANTLR start rule__Transitions__Group_3_0__1__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2746:1: rule__Transitions__Group_3_0__1__Impl : ( '=' ) ;
    public final void rule__Transitions__Group_3_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2750:1: ( ( '=' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2751:1: ( '=' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2751:1: ( '=' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2752:1: '='
            {
             before(grammarAccess.getTransitionsAccess().getEqualsSignKeyword_3_0_1()); 
            match(input,21,FOLLOW_21_in_rule__Transitions__Group_3_0__1__Impl5584); 
             after(grammarAccess.getTransitionsAccess().getEqualsSignKeyword_3_0_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transitions__Group_3_0__1__Impl


    // $ANTLR start rule__Transitions__Group_3_0__2
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2765:1: rule__Transitions__Group_3_0__2 : rule__Transitions__Group_3_0__2__Impl ;
    public final void rule__Transitions__Group_3_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2769:1: ( rule__Transitions__Group_3_0__2__Impl )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2770:2: rule__Transitions__Group_3_0__2__Impl
            {
            pushFollow(FOLLOW_rule__Transitions__Group_3_0__2__Impl_in_rule__Transitions__Group_3_0__25615);
            rule__Transitions__Group_3_0__2__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transitions__Group_3_0__2


    // $ANTLR start rule__Transitions__Group_3_0__2__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2776:1: rule__Transitions__Group_3_0__2__Impl : ( ( rule__Transitions__TapeAssignment_3_0_2 ) ) ;
    public final void rule__Transitions__Group_3_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2780:1: ( ( ( rule__Transitions__TapeAssignment_3_0_2 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2781:1: ( ( rule__Transitions__TapeAssignment_3_0_2 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2781:1: ( ( rule__Transitions__TapeAssignment_3_0_2 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2782:1: ( rule__Transitions__TapeAssignment_3_0_2 )
            {
             before(grammarAccess.getTransitionsAccess().getTapeAssignment_3_0_2()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2783:1: ( rule__Transitions__TapeAssignment_3_0_2 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2783:2: rule__Transitions__TapeAssignment_3_0_2
            {
            pushFollow(FOLLOW_rule__Transitions__TapeAssignment_3_0_2_in_rule__Transitions__Group_3_0__2__Impl5642);
            rule__Transitions__TapeAssignment_3_0_2();
            _fsp--;


            }

             after(grammarAccess.getTransitionsAccess().getTapeAssignment_3_0_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transitions__Group_3_0__2__Impl


    // $ANTLR start rule__Transitions__Group_3_1__0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2799:1: rule__Transitions__Group_3_1__0 : rule__Transitions__Group_3_1__0__Impl rule__Transitions__Group_3_1__1 ;
    public final void rule__Transitions__Group_3_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2803:1: ( rule__Transitions__Group_3_1__0__Impl rule__Transitions__Group_3_1__1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2804:2: rule__Transitions__Group_3_1__0__Impl rule__Transitions__Group_3_1__1
            {
            pushFollow(FOLLOW_rule__Transitions__Group_3_1__0__Impl_in_rule__Transitions__Group_3_1__05678);
            rule__Transitions__Group_3_1__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Transitions__Group_3_1__1_in_rule__Transitions__Group_3_1__05681);
            rule__Transitions__Group_3_1__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transitions__Group_3_1__0


    // $ANTLR start rule__Transitions__Group_3_1__0__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2811:1: rule__Transitions__Group_3_1__0__Impl : ( 'states' ) ;
    public final void rule__Transitions__Group_3_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2815:1: ( ( 'states' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2816:1: ( 'states' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2816:1: ( 'states' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2817:1: 'states'
            {
             before(grammarAccess.getTransitionsAccess().getStatesKeyword_3_1_0()); 
            match(input,32,FOLLOW_32_in_rule__Transitions__Group_3_1__0__Impl5709); 
             after(grammarAccess.getTransitionsAccess().getStatesKeyword_3_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transitions__Group_3_1__0__Impl


    // $ANTLR start rule__Transitions__Group_3_1__1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2830:1: rule__Transitions__Group_3_1__1 : rule__Transitions__Group_3_1__1__Impl rule__Transitions__Group_3_1__2 ;
    public final void rule__Transitions__Group_3_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2834:1: ( rule__Transitions__Group_3_1__1__Impl rule__Transitions__Group_3_1__2 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2835:2: rule__Transitions__Group_3_1__1__Impl rule__Transitions__Group_3_1__2
            {
            pushFollow(FOLLOW_rule__Transitions__Group_3_1__1__Impl_in_rule__Transitions__Group_3_1__15740);
            rule__Transitions__Group_3_1__1__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Transitions__Group_3_1__2_in_rule__Transitions__Group_3_1__15743);
            rule__Transitions__Group_3_1__2();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transitions__Group_3_1__1


    // $ANTLR start rule__Transitions__Group_3_1__1__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2842:1: rule__Transitions__Group_3_1__1__Impl : ( '=' ) ;
    public final void rule__Transitions__Group_3_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2846:1: ( ( '=' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2847:1: ( '=' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2847:1: ( '=' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2848:1: '='
            {
             before(grammarAccess.getTransitionsAccess().getEqualsSignKeyword_3_1_1()); 
            match(input,21,FOLLOW_21_in_rule__Transitions__Group_3_1__1__Impl5771); 
             after(grammarAccess.getTransitionsAccess().getEqualsSignKeyword_3_1_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transitions__Group_3_1__1__Impl


    // $ANTLR start rule__Transitions__Group_3_1__2
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2861:1: rule__Transitions__Group_3_1__2 : rule__Transitions__Group_3_1__2__Impl ;
    public final void rule__Transitions__Group_3_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2865:1: ( rule__Transitions__Group_3_1__2__Impl )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2866:2: rule__Transitions__Group_3_1__2__Impl
            {
            pushFollow(FOLLOW_rule__Transitions__Group_3_1__2__Impl_in_rule__Transitions__Group_3_1__25802);
            rule__Transitions__Group_3_1__2__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transitions__Group_3_1__2


    // $ANTLR start rule__Transitions__Group_3_1__2__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2872:1: rule__Transitions__Group_3_1__2__Impl : ( ( rule__Transitions__StatesAssignment_3_1_2 ) ) ;
    public final void rule__Transitions__Group_3_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2876:1: ( ( ( rule__Transitions__StatesAssignment_3_1_2 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2877:1: ( ( rule__Transitions__StatesAssignment_3_1_2 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2877:1: ( ( rule__Transitions__StatesAssignment_3_1_2 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2878:1: ( rule__Transitions__StatesAssignment_3_1_2 )
            {
             before(grammarAccess.getTransitionsAccess().getStatesAssignment_3_1_2()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2879:1: ( rule__Transitions__StatesAssignment_3_1_2 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2879:2: rule__Transitions__StatesAssignment_3_1_2
            {
            pushFollow(FOLLOW_rule__Transitions__StatesAssignment_3_1_2_in_rule__Transitions__Group_3_1__2__Impl5829);
            rule__Transitions__StatesAssignment_3_1_2();
            _fsp--;


            }

             after(grammarAccess.getTransitionsAccess().getStatesAssignment_3_1_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transitions__Group_3_1__2__Impl


    // $ANTLR start rule__Transition__Group__0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2895:1: rule__Transition__Group__0 : rule__Transition__Group__0__Impl rule__Transition__Group__1 ;
    public final void rule__Transition__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2899:1: ( rule__Transition__Group__0__Impl rule__Transition__Group__1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2900:2: rule__Transition__Group__0__Impl rule__Transition__Group__1
            {
            pushFollow(FOLLOW_rule__Transition__Group__0__Impl_in_rule__Transition__Group__05865);
            rule__Transition__Group__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Transition__Group__1_in_rule__Transition__Group__05868);
            rule__Transition__Group__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transition__Group__0


    // $ANTLR start rule__Transition__Group__0__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2907:1: rule__Transition__Group__0__Impl : ( ( rule__Transition__StartAssignment_0 ) ) ;
    public final void rule__Transition__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2911:1: ( ( ( rule__Transition__StartAssignment_0 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2912:1: ( ( rule__Transition__StartAssignment_0 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2912:1: ( ( rule__Transition__StartAssignment_0 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2913:1: ( rule__Transition__StartAssignment_0 )
            {
             before(grammarAccess.getTransitionAccess().getStartAssignment_0()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2914:1: ( rule__Transition__StartAssignment_0 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2914:2: rule__Transition__StartAssignment_0
            {
            pushFollow(FOLLOW_rule__Transition__StartAssignment_0_in_rule__Transition__Group__0__Impl5895);
            rule__Transition__StartAssignment_0();
            _fsp--;


            }

             after(grammarAccess.getTransitionAccess().getStartAssignment_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transition__Group__0__Impl


    // $ANTLR start rule__Transition__Group__1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2924:1: rule__Transition__Group__1 : rule__Transition__Group__1__Impl rule__Transition__Group__2 ;
    public final void rule__Transition__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2928:1: ( rule__Transition__Group__1__Impl rule__Transition__Group__2 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2929:2: rule__Transition__Group__1__Impl rule__Transition__Group__2
            {
            pushFollow(FOLLOW_rule__Transition__Group__1__Impl_in_rule__Transition__Group__15925);
            rule__Transition__Group__1__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Transition__Group__2_in_rule__Transition__Group__15928);
            rule__Transition__Group__2();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transition__Group__1


    // $ANTLR start rule__Transition__Group__1__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2936:1: rule__Transition__Group__1__Impl : ( '->' ) ;
    public final void rule__Transition__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2940:1: ( ( '->' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2941:1: ( '->' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2941:1: ( '->' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2942:1: '->'
            {
             before(grammarAccess.getTransitionAccess().getHyphenMinusGreaterThanSignKeyword_1()); 
            match(input,33,FOLLOW_33_in_rule__Transition__Group__1__Impl5956); 
             after(grammarAccess.getTransitionAccess().getHyphenMinusGreaterThanSignKeyword_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transition__Group__1__Impl


    // $ANTLR start rule__Transition__Group__2
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2955:1: rule__Transition__Group__2 : rule__Transition__Group__2__Impl rule__Transition__Group__3 ;
    public final void rule__Transition__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2959:1: ( rule__Transition__Group__2__Impl rule__Transition__Group__3 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2960:2: rule__Transition__Group__2__Impl rule__Transition__Group__3
            {
            pushFollow(FOLLOW_rule__Transition__Group__2__Impl_in_rule__Transition__Group__25987);
            rule__Transition__Group__2__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Transition__Group__3_in_rule__Transition__Group__25990);
            rule__Transition__Group__3();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transition__Group__2


    // $ANTLR start rule__Transition__Group__2__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2967:1: rule__Transition__Group__2__Impl : ( ( rule__Transition__EndAssignment_2 ) ) ;
    public final void rule__Transition__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2971:1: ( ( ( rule__Transition__EndAssignment_2 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2972:1: ( ( rule__Transition__EndAssignment_2 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2972:1: ( ( rule__Transition__EndAssignment_2 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2973:1: ( rule__Transition__EndAssignment_2 )
            {
             before(grammarAccess.getTransitionAccess().getEndAssignment_2()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2974:1: ( rule__Transition__EndAssignment_2 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2974:2: rule__Transition__EndAssignment_2
            {
            pushFollow(FOLLOW_rule__Transition__EndAssignment_2_in_rule__Transition__Group__2__Impl6017);
            rule__Transition__EndAssignment_2();
            _fsp--;


            }

             after(grammarAccess.getTransitionAccess().getEndAssignment_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transition__Group__2__Impl


    // $ANTLR start rule__Transition__Group__3
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2984:1: rule__Transition__Group__3 : rule__Transition__Group__3__Impl rule__Transition__Group__4 ;
    public final void rule__Transition__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2988:1: ( rule__Transition__Group__3__Impl rule__Transition__Group__4 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2989:2: rule__Transition__Group__3__Impl rule__Transition__Group__4
            {
            pushFollow(FOLLOW_rule__Transition__Group__3__Impl_in_rule__Transition__Group__36047);
            rule__Transition__Group__3__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Transition__Group__4_in_rule__Transition__Group__36050);
            rule__Transition__Group__4();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transition__Group__3


    // $ANTLR start rule__Transition__Group__3__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:2996:1: rule__Transition__Group__3__Impl : ( ':' ) ;
    public final void rule__Transition__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3000:1: ( ( ':' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3001:1: ( ':' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3001:1: ( ':' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3002:1: ':'
            {
             before(grammarAccess.getTransitionAccess().getColonKeyword_3()); 
            match(input,24,FOLLOW_24_in_rule__Transition__Group__3__Impl6078); 
             after(grammarAccess.getTransitionAccess().getColonKeyword_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transition__Group__3__Impl


    // $ANTLR start rule__Transition__Group__4
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3015:1: rule__Transition__Group__4 : rule__Transition__Group__4__Impl rule__Transition__Group__5 ;
    public final void rule__Transition__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3019:1: ( rule__Transition__Group__4__Impl rule__Transition__Group__5 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3020:2: rule__Transition__Group__4__Impl rule__Transition__Group__5
            {
            pushFollow(FOLLOW_rule__Transition__Group__4__Impl_in_rule__Transition__Group__46109);
            rule__Transition__Group__4__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Transition__Group__5_in_rule__Transition__Group__46112);
            rule__Transition__Group__5();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transition__Group__4


    // $ANTLR start rule__Transition__Group__4__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3027:1: rule__Transition__Group__4__Impl : ( ( rule__Transition__StartInstructionsAssignment_4 ) ) ;
    public final void rule__Transition__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3031:1: ( ( ( rule__Transition__StartInstructionsAssignment_4 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3032:1: ( ( rule__Transition__StartInstructionsAssignment_4 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3032:1: ( ( rule__Transition__StartInstructionsAssignment_4 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3033:1: ( rule__Transition__StartInstructionsAssignment_4 )
            {
             before(grammarAccess.getTransitionAccess().getStartInstructionsAssignment_4()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3034:1: ( rule__Transition__StartInstructionsAssignment_4 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3034:2: rule__Transition__StartInstructionsAssignment_4
            {
            pushFollow(FOLLOW_rule__Transition__StartInstructionsAssignment_4_in_rule__Transition__Group__4__Impl6139);
            rule__Transition__StartInstructionsAssignment_4();
            _fsp--;


            }

             after(grammarAccess.getTransitionAccess().getStartInstructionsAssignment_4()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transition__Group__4__Impl


    // $ANTLR start rule__Transition__Group__5
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3044:1: rule__Transition__Group__5 : rule__Transition__Group__5__Impl rule__Transition__Group__6 ;
    public final void rule__Transition__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3048:1: ( rule__Transition__Group__5__Impl rule__Transition__Group__6 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3049:2: rule__Transition__Group__5__Impl rule__Transition__Group__6
            {
            pushFollow(FOLLOW_rule__Transition__Group__5__Impl_in_rule__Transition__Group__56169);
            rule__Transition__Group__5__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Transition__Group__6_in_rule__Transition__Group__56172);
            rule__Transition__Group__6();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transition__Group__5


    // $ANTLR start rule__Transition__Group__5__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3056:1: rule__Transition__Group__5__Impl : ( ( rule__Transition__Group_5__0 )* ) ;
    public final void rule__Transition__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3060:1: ( ( ( rule__Transition__Group_5__0 )* ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3061:1: ( ( rule__Transition__Group_5__0 )* )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3061:1: ( ( rule__Transition__Group_5__0 )* )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3062:1: ( rule__Transition__Group_5__0 )*
            {
             before(grammarAccess.getTransitionAccess().getGroup_5()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3063:1: ( rule__Transition__Group_5__0 )*
            loop22:
            do {
                int alt22=2;
                int LA22_0 = input.LA(1);

                if ( (LA22_0==34) ) {
                    alt22=1;
                }


                switch (alt22) {
            	case 1 :
            	    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3063:2: rule__Transition__Group_5__0
            	    {
            	    pushFollow(FOLLOW_rule__Transition__Group_5__0_in_rule__Transition__Group__5__Impl6199);
            	    rule__Transition__Group_5__0();
            	    _fsp--;


            	    }
            	    break;

            	default :
            	    break loop22;
                }
            } while (true);

             after(grammarAccess.getTransitionAccess().getGroup_5()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transition__Group__5__Impl


    // $ANTLR start rule__Transition__Group__6
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3073:1: rule__Transition__Group__6 : rule__Transition__Group__6__Impl ;
    public final void rule__Transition__Group__6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3077:1: ( rule__Transition__Group__6__Impl )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3078:2: rule__Transition__Group__6__Impl
            {
            pushFollow(FOLLOW_rule__Transition__Group__6__Impl_in_rule__Transition__Group__66230);
            rule__Transition__Group__6__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transition__Group__6


    // $ANTLR start rule__Transition__Group__6__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3084:1: rule__Transition__Group__6__Impl : ( ( rule__Transition__Group_6__0 )? ) ;
    public final void rule__Transition__Group__6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3088:1: ( ( ( rule__Transition__Group_6__0 )? ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3089:1: ( ( rule__Transition__Group_6__0 )? )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3089:1: ( ( rule__Transition__Group_6__0 )? )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3090:1: ( rule__Transition__Group_6__0 )?
            {
             before(grammarAccess.getTransitionAccess().getGroup_6()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3091:1: ( rule__Transition__Group_6__0 )?
            int alt23=2;
            int LA23_0 = input.LA(1);

            if ( (LA23_0==35) ) {
                alt23=1;
            }
            switch (alt23) {
                case 1 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3091:2: rule__Transition__Group_6__0
                    {
                    pushFollow(FOLLOW_rule__Transition__Group_6__0_in_rule__Transition__Group__6__Impl6257);
                    rule__Transition__Group_6__0();
                    _fsp--;


                    }
                    break;

            }

             after(grammarAccess.getTransitionAccess().getGroup_6()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transition__Group__6__Impl


    // $ANTLR start rule__Transition__Group_5__0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3115:1: rule__Transition__Group_5__0 : rule__Transition__Group_5__0__Impl rule__Transition__Group_5__1 ;
    public final void rule__Transition__Group_5__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3119:1: ( rule__Transition__Group_5__0__Impl rule__Transition__Group_5__1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3120:2: rule__Transition__Group_5__0__Impl rule__Transition__Group_5__1
            {
            pushFollow(FOLLOW_rule__Transition__Group_5__0__Impl_in_rule__Transition__Group_5__06302);
            rule__Transition__Group_5__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Transition__Group_5__1_in_rule__Transition__Group_5__06305);
            rule__Transition__Group_5__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transition__Group_5__0


    // $ANTLR start rule__Transition__Group_5__0__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3127:1: rule__Transition__Group_5__0__Impl : ( ',' ) ;
    public final void rule__Transition__Group_5__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3131:1: ( ( ',' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3132:1: ( ',' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3132:1: ( ',' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3133:1: ','
            {
             before(grammarAccess.getTransitionAccess().getCommaKeyword_5_0()); 
            match(input,34,FOLLOW_34_in_rule__Transition__Group_5__0__Impl6333); 
             after(grammarAccess.getTransitionAccess().getCommaKeyword_5_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transition__Group_5__0__Impl


    // $ANTLR start rule__Transition__Group_5__1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3146:1: rule__Transition__Group_5__1 : rule__Transition__Group_5__1__Impl ;
    public final void rule__Transition__Group_5__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3150:1: ( rule__Transition__Group_5__1__Impl )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3151:2: rule__Transition__Group_5__1__Impl
            {
            pushFollow(FOLLOW_rule__Transition__Group_5__1__Impl_in_rule__Transition__Group_5__16364);
            rule__Transition__Group_5__1__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transition__Group_5__1


    // $ANTLR start rule__Transition__Group_5__1__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3157:1: rule__Transition__Group_5__1__Impl : ( ( rule__Transition__StartInstructionsAssignment_5_1 ) ) ;
    public final void rule__Transition__Group_5__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3161:1: ( ( ( rule__Transition__StartInstructionsAssignment_5_1 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3162:1: ( ( rule__Transition__StartInstructionsAssignment_5_1 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3162:1: ( ( rule__Transition__StartInstructionsAssignment_5_1 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3163:1: ( rule__Transition__StartInstructionsAssignment_5_1 )
            {
             before(grammarAccess.getTransitionAccess().getStartInstructionsAssignment_5_1()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3164:1: ( rule__Transition__StartInstructionsAssignment_5_1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3164:2: rule__Transition__StartInstructionsAssignment_5_1
            {
            pushFollow(FOLLOW_rule__Transition__StartInstructionsAssignment_5_1_in_rule__Transition__Group_5__1__Impl6391);
            rule__Transition__StartInstructionsAssignment_5_1();
            _fsp--;


            }

             after(grammarAccess.getTransitionAccess().getStartInstructionsAssignment_5_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transition__Group_5__1__Impl


    // $ANTLR start rule__Transition__Group_6__0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3178:1: rule__Transition__Group_6__0 : rule__Transition__Group_6__0__Impl rule__Transition__Group_6__1 ;
    public final void rule__Transition__Group_6__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3182:1: ( rule__Transition__Group_6__0__Impl rule__Transition__Group_6__1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3183:2: rule__Transition__Group_6__0__Impl rule__Transition__Group_6__1
            {
            pushFollow(FOLLOW_rule__Transition__Group_6__0__Impl_in_rule__Transition__Group_6__06425);
            rule__Transition__Group_6__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Transition__Group_6__1_in_rule__Transition__Group_6__06428);
            rule__Transition__Group_6__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transition__Group_6__0


    // $ANTLR start rule__Transition__Group_6__0__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3190:1: rule__Transition__Group_6__0__Impl : ( '<>' ) ;
    public final void rule__Transition__Group_6__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3194:1: ( ( '<>' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3195:1: ( '<>' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3195:1: ( '<>' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3196:1: '<>'
            {
             before(grammarAccess.getTransitionAccess().getLessThanSignGreaterThanSignKeyword_6_0()); 
            match(input,35,FOLLOW_35_in_rule__Transition__Group_6__0__Impl6456); 
             after(grammarAccess.getTransitionAccess().getLessThanSignGreaterThanSignKeyword_6_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transition__Group_6__0__Impl


    // $ANTLR start rule__Transition__Group_6__1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3209:1: rule__Transition__Group_6__1 : rule__Transition__Group_6__1__Impl rule__Transition__Group_6__2 ;
    public final void rule__Transition__Group_6__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3213:1: ( rule__Transition__Group_6__1__Impl rule__Transition__Group_6__2 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3214:2: rule__Transition__Group_6__1__Impl rule__Transition__Group_6__2
            {
            pushFollow(FOLLOW_rule__Transition__Group_6__1__Impl_in_rule__Transition__Group_6__16487);
            rule__Transition__Group_6__1__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Transition__Group_6__2_in_rule__Transition__Group_6__16490);
            rule__Transition__Group_6__2();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transition__Group_6__1


    // $ANTLR start rule__Transition__Group_6__1__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3221:1: rule__Transition__Group_6__1__Impl : ( ( rule__Transition__EndInstructionsAssignment_6_1 ) ) ;
    public final void rule__Transition__Group_6__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3225:1: ( ( ( rule__Transition__EndInstructionsAssignment_6_1 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3226:1: ( ( rule__Transition__EndInstructionsAssignment_6_1 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3226:1: ( ( rule__Transition__EndInstructionsAssignment_6_1 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3227:1: ( rule__Transition__EndInstructionsAssignment_6_1 )
            {
             before(grammarAccess.getTransitionAccess().getEndInstructionsAssignment_6_1()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3228:1: ( rule__Transition__EndInstructionsAssignment_6_1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3228:2: rule__Transition__EndInstructionsAssignment_6_1
            {
            pushFollow(FOLLOW_rule__Transition__EndInstructionsAssignment_6_1_in_rule__Transition__Group_6__1__Impl6517);
            rule__Transition__EndInstructionsAssignment_6_1();
            _fsp--;


            }

             after(grammarAccess.getTransitionAccess().getEndInstructionsAssignment_6_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transition__Group_6__1__Impl


    // $ANTLR start rule__Transition__Group_6__2
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3238:1: rule__Transition__Group_6__2 : rule__Transition__Group_6__2__Impl ;
    public final void rule__Transition__Group_6__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3242:1: ( rule__Transition__Group_6__2__Impl )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3243:2: rule__Transition__Group_6__2__Impl
            {
            pushFollow(FOLLOW_rule__Transition__Group_6__2__Impl_in_rule__Transition__Group_6__26547);
            rule__Transition__Group_6__2__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transition__Group_6__2


    // $ANTLR start rule__Transition__Group_6__2__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3249:1: rule__Transition__Group_6__2__Impl : ( ( rule__Transition__Group_6_2__0 )* ) ;
    public final void rule__Transition__Group_6__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3253:1: ( ( ( rule__Transition__Group_6_2__0 )* ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3254:1: ( ( rule__Transition__Group_6_2__0 )* )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3254:1: ( ( rule__Transition__Group_6_2__0 )* )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3255:1: ( rule__Transition__Group_6_2__0 )*
            {
             before(grammarAccess.getTransitionAccess().getGroup_6_2()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3256:1: ( rule__Transition__Group_6_2__0 )*
            loop24:
            do {
                int alt24=2;
                int LA24_0 = input.LA(1);

                if ( (LA24_0==34) ) {
                    alt24=1;
                }


                switch (alt24) {
            	case 1 :
            	    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3256:2: rule__Transition__Group_6_2__0
            	    {
            	    pushFollow(FOLLOW_rule__Transition__Group_6_2__0_in_rule__Transition__Group_6__2__Impl6574);
            	    rule__Transition__Group_6_2__0();
            	    _fsp--;


            	    }
            	    break;

            	default :
            	    break loop24;
                }
            } while (true);

             after(grammarAccess.getTransitionAccess().getGroup_6_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transition__Group_6__2__Impl


    // $ANTLR start rule__Transition__Group_6_2__0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3272:1: rule__Transition__Group_6_2__0 : rule__Transition__Group_6_2__0__Impl rule__Transition__Group_6_2__1 ;
    public final void rule__Transition__Group_6_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3276:1: ( rule__Transition__Group_6_2__0__Impl rule__Transition__Group_6_2__1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3277:2: rule__Transition__Group_6_2__0__Impl rule__Transition__Group_6_2__1
            {
            pushFollow(FOLLOW_rule__Transition__Group_6_2__0__Impl_in_rule__Transition__Group_6_2__06611);
            rule__Transition__Group_6_2__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Transition__Group_6_2__1_in_rule__Transition__Group_6_2__06614);
            rule__Transition__Group_6_2__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transition__Group_6_2__0


    // $ANTLR start rule__Transition__Group_6_2__0__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3284:1: rule__Transition__Group_6_2__0__Impl : ( ',' ) ;
    public final void rule__Transition__Group_6_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3288:1: ( ( ',' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3289:1: ( ',' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3289:1: ( ',' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3290:1: ','
            {
             before(grammarAccess.getTransitionAccess().getCommaKeyword_6_2_0()); 
            match(input,34,FOLLOW_34_in_rule__Transition__Group_6_2__0__Impl6642); 
             after(grammarAccess.getTransitionAccess().getCommaKeyword_6_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transition__Group_6_2__0__Impl


    // $ANTLR start rule__Transition__Group_6_2__1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3303:1: rule__Transition__Group_6_2__1 : rule__Transition__Group_6_2__1__Impl ;
    public final void rule__Transition__Group_6_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3307:1: ( rule__Transition__Group_6_2__1__Impl )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3308:2: rule__Transition__Group_6_2__1__Impl
            {
            pushFollow(FOLLOW_rule__Transition__Group_6_2__1__Impl_in_rule__Transition__Group_6_2__16673);
            rule__Transition__Group_6_2__1__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transition__Group_6_2__1


    // $ANTLR start rule__Transition__Group_6_2__1__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3314:1: rule__Transition__Group_6_2__1__Impl : ( ( rule__Transition__EndInstructionsAssignment_6_2_1 ) ) ;
    public final void rule__Transition__Group_6_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3318:1: ( ( ( rule__Transition__EndInstructionsAssignment_6_2_1 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3319:1: ( ( rule__Transition__EndInstructionsAssignment_6_2_1 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3319:1: ( ( rule__Transition__EndInstructionsAssignment_6_2_1 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3320:1: ( rule__Transition__EndInstructionsAssignment_6_2_1 )
            {
             before(grammarAccess.getTransitionAccess().getEndInstructionsAssignment_6_2_1()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3321:1: ( rule__Transition__EndInstructionsAssignment_6_2_1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3321:2: rule__Transition__EndInstructionsAssignment_6_2_1
            {
            pushFollow(FOLLOW_rule__Transition__EndInstructionsAssignment_6_2_1_in_rule__Transition__Group_6_2__1__Impl6700);
            rule__Transition__EndInstructionsAssignment_6_2_1();
            _fsp--;


            }

             after(grammarAccess.getTransitionAccess().getEndInstructionsAssignment_6_2_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transition__Group_6_2__1__Impl


    // $ANTLR start rule__ReadFromTape__Group__0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3335:1: rule__ReadFromTape__Group__0 : rule__ReadFromTape__Group__0__Impl rule__ReadFromTape__Group__1 ;
    public final void rule__ReadFromTape__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3339:1: ( rule__ReadFromTape__Group__0__Impl rule__ReadFromTape__Group__1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3340:2: rule__ReadFromTape__Group__0__Impl rule__ReadFromTape__Group__1
            {
            pushFollow(FOLLOW_rule__ReadFromTape__Group__0__Impl_in_rule__ReadFromTape__Group__06734);
            rule__ReadFromTape__Group__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__ReadFromTape__Group__1_in_rule__ReadFromTape__Group__06737);
            rule__ReadFromTape__Group__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__ReadFromTape__Group__0


    // $ANTLR start rule__ReadFromTape__Group__0__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3347:1: rule__ReadFromTape__Group__0__Impl : ( ( 'read' )? ) ;
    public final void rule__ReadFromTape__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3351:1: ( ( ( 'read' )? ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3352:1: ( ( 'read' )? )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3352:1: ( ( 'read' )? )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3353:1: ( 'read' )?
            {
             before(grammarAccess.getReadFromTapeAccess().getReadKeyword_0()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3354:1: ( 'read' )?
            int alt25=2;
            int LA25_0 = input.LA(1);

            if ( (LA25_0==36) ) {
                alt25=1;
            }
            switch (alt25) {
                case 1 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3355:2: 'read'
                    {
                    match(input,36,FOLLOW_36_in_rule__ReadFromTape__Group__0__Impl6766); 

                    }
                    break;

            }

             after(grammarAccess.getReadFromTapeAccess().getReadKeyword_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__ReadFromTape__Group__0__Impl


    // $ANTLR start rule__ReadFromTape__Group__1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3366:1: rule__ReadFromTape__Group__1 : rule__ReadFromTape__Group__1__Impl rule__ReadFromTape__Group__2 ;
    public final void rule__ReadFromTape__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3370:1: ( rule__ReadFromTape__Group__1__Impl rule__ReadFromTape__Group__2 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3371:2: rule__ReadFromTape__Group__1__Impl rule__ReadFromTape__Group__2
            {
            pushFollow(FOLLOW_rule__ReadFromTape__Group__1__Impl_in_rule__ReadFromTape__Group__16799);
            rule__ReadFromTape__Group__1__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__ReadFromTape__Group__2_in_rule__ReadFromTape__Group__16802);
            rule__ReadFromTape__Group__2();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__ReadFromTape__Group__1


    // $ANTLR start rule__ReadFromTape__Group__1__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3378:1: rule__ReadFromTape__Group__1__Impl : ( ( rule__ReadFromTape__SymbolAssignment_1 ) ) ;
    public final void rule__ReadFromTape__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3382:1: ( ( ( rule__ReadFromTape__SymbolAssignment_1 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3383:1: ( ( rule__ReadFromTape__SymbolAssignment_1 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3383:1: ( ( rule__ReadFromTape__SymbolAssignment_1 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3384:1: ( rule__ReadFromTape__SymbolAssignment_1 )
            {
             before(grammarAccess.getReadFromTapeAccess().getSymbolAssignment_1()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3385:1: ( rule__ReadFromTape__SymbolAssignment_1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3385:2: rule__ReadFromTape__SymbolAssignment_1
            {
            pushFollow(FOLLOW_rule__ReadFromTape__SymbolAssignment_1_in_rule__ReadFromTape__Group__1__Impl6829);
            rule__ReadFromTape__SymbolAssignment_1();
            _fsp--;


            }

             after(grammarAccess.getReadFromTapeAccess().getSymbolAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__ReadFromTape__Group__1__Impl


    // $ANTLR start rule__ReadFromTape__Group__2
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3395:1: rule__ReadFromTape__Group__2 : rule__ReadFromTape__Group__2__Impl ;
    public final void rule__ReadFromTape__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3399:1: ( rule__ReadFromTape__Group__2__Impl )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3400:2: rule__ReadFromTape__Group__2__Impl
            {
            pushFollow(FOLLOW_rule__ReadFromTape__Group__2__Impl_in_rule__ReadFromTape__Group__26859);
            rule__ReadFromTape__Group__2__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__ReadFromTape__Group__2


    // $ANTLR start rule__ReadFromTape__Group__2__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3406:1: rule__ReadFromTape__Group__2__Impl : ( ( rule__ReadFromTape__Group_2__0 )? ) ;
    public final void rule__ReadFromTape__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3410:1: ( ( ( rule__ReadFromTape__Group_2__0 )? ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3411:1: ( ( rule__ReadFromTape__Group_2__0 )? )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3411:1: ( ( rule__ReadFromTape__Group_2__0 )? )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3412:1: ( rule__ReadFromTape__Group_2__0 )?
            {
             before(grammarAccess.getReadFromTapeAccess().getGroup_2()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3413:1: ( rule__ReadFromTape__Group_2__0 )?
            int alt26=2;
            int LA26_0 = input.LA(1);

            if ( (LA26_0==37) ) {
                alt26=1;
            }
            switch (alt26) {
                case 1 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3413:2: rule__ReadFromTape__Group_2__0
                    {
                    pushFollow(FOLLOW_rule__ReadFromTape__Group_2__0_in_rule__ReadFromTape__Group__2__Impl6886);
                    rule__ReadFromTape__Group_2__0();
                    _fsp--;


                    }
                    break;

            }

             after(grammarAccess.getReadFromTapeAccess().getGroup_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__ReadFromTape__Group__2__Impl


    // $ANTLR start rule__ReadFromTape__Group_2__0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3429:1: rule__ReadFromTape__Group_2__0 : rule__ReadFromTape__Group_2__0__Impl rule__ReadFromTape__Group_2__1 ;
    public final void rule__ReadFromTape__Group_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3433:1: ( rule__ReadFromTape__Group_2__0__Impl rule__ReadFromTape__Group_2__1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3434:2: rule__ReadFromTape__Group_2__0__Impl rule__ReadFromTape__Group_2__1
            {
            pushFollow(FOLLOW_rule__ReadFromTape__Group_2__0__Impl_in_rule__ReadFromTape__Group_2__06923);
            rule__ReadFromTape__Group_2__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__ReadFromTape__Group_2__1_in_rule__ReadFromTape__Group_2__06926);
            rule__ReadFromTape__Group_2__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__ReadFromTape__Group_2__0


    // $ANTLR start rule__ReadFromTape__Group_2__0__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3441:1: rule__ReadFromTape__Group_2__0__Impl : ( '<-' ) ;
    public final void rule__ReadFromTape__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3445:1: ( ( '<-' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3446:1: ( '<-' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3446:1: ( '<-' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3447:1: '<-'
            {
             before(grammarAccess.getReadFromTapeAccess().getLessThanSignHyphenMinusKeyword_2_0()); 
            match(input,37,FOLLOW_37_in_rule__ReadFromTape__Group_2__0__Impl6954); 
             after(grammarAccess.getReadFromTapeAccess().getLessThanSignHyphenMinusKeyword_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__ReadFromTape__Group_2__0__Impl


    // $ANTLR start rule__ReadFromTape__Group_2__1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3460:1: rule__ReadFromTape__Group_2__1 : rule__ReadFromTape__Group_2__1__Impl ;
    public final void rule__ReadFromTape__Group_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3464:1: ( rule__ReadFromTape__Group_2__1__Impl )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3465:2: rule__ReadFromTape__Group_2__1__Impl
            {
            pushFollow(FOLLOW_rule__ReadFromTape__Group_2__1__Impl_in_rule__ReadFromTape__Group_2__16985);
            rule__ReadFromTape__Group_2__1__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__ReadFromTape__Group_2__1


    // $ANTLR start rule__ReadFromTape__Group_2__1__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3471:1: rule__ReadFromTape__Group_2__1__Impl : ( ( rule__ReadFromTape__TapeAssignment_2_1 ) ) ;
    public final void rule__ReadFromTape__Group_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3475:1: ( ( ( rule__ReadFromTape__TapeAssignment_2_1 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3476:1: ( ( rule__ReadFromTape__TapeAssignment_2_1 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3476:1: ( ( rule__ReadFromTape__TapeAssignment_2_1 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3477:1: ( rule__ReadFromTape__TapeAssignment_2_1 )
            {
             before(grammarAccess.getReadFromTapeAccess().getTapeAssignment_2_1()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3478:1: ( rule__ReadFromTape__TapeAssignment_2_1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3478:2: rule__ReadFromTape__TapeAssignment_2_1
            {
            pushFollow(FOLLOW_rule__ReadFromTape__TapeAssignment_2_1_in_rule__ReadFromTape__Group_2__1__Impl7012);
            rule__ReadFromTape__TapeAssignment_2_1();
            _fsp--;


            }

             after(grammarAccess.getReadFromTapeAccess().getTapeAssignment_2_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__ReadFromTape__Group_2__1__Impl


    // $ANTLR start rule__WriteToTape__Group__0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3492:1: rule__WriteToTape__Group__0 : rule__WriteToTape__Group__0__Impl rule__WriteToTape__Group__1 ;
    public final void rule__WriteToTape__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3496:1: ( rule__WriteToTape__Group__0__Impl rule__WriteToTape__Group__1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3497:2: rule__WriteToTape__Group__0__Impl rule__WriteToTape__Group__1
            {
            pushFollow(FOLLOW_rule__WriteToTape__Group__0__Impl_in_rule__WriteToTape__Group__07046);
            rule__WriteToTape__Group__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__WriteToTape__Group__1_in_rule__WriteToTape__Group__07049);
            rule__WriteToTape__Group__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__WriteToTape__Group__0


    // $ANTLR start rule__WriteToTape__Group__0__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3504:1: rule__WriteToTape__Group__0__Impl : ( 'write' ) ;
    public final void rule__WriteToTape__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3508:1: ( ( 'write' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3509:1: ( 'write' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3509:1: ( 'write' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3510:1: 'write'
            {
             before(grammarAccess.getWriteToTapeAccess().getWriteKeyword_0()); 
            match(input,38,FOLLOW_38_in_rule__WriteToTape__Group__0__Impl7077); 
             after(grammarAccess.getWriteToTapeAccess().getWriteKeyword_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__WriteToTape__Group__0__Impl


    // $ANTLR start rule__WriteToTape__Group__1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3523:1: rule__WriteToTape__Group__1 : rule__WriteToTape__Group__1__Impl rule__WriteToTape__Group__2 ;
    public final void rule__WriteToTape__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3527:1: ( rule__WriteToTape__Group__1__Impl rule__WriteToTape__Group__2 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3528:2: rule__WriteToTape__Group__1__Impl rule__WriteToTape__Group__2
            {
            pushFollow(FOLLOW_rule__WriteToTape__Group__1__Impl_in_rule__WriteToTape__Group__17108);
            rule__WriteToTape__Group__1__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__WriteToTape__Group__2_in_rule__WriteToTape__Group__17111);
            rule__WriteToTape__Group__2();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__WriteToTape__Group__1


    // $ANTLR start rule__WriteToTape__Group__1__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3535:1: rule__WriteToTape__Group__1__Impl : ( ( rule__WriteToTape__SymbolAssignment_1 ) ) ;
    public final void rule__WriteToTape__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3539:1: ( ( ( rule__WriteToTape__SymbolAssignment_1 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3540:1: ( ( rule__WriteToTape__SymbolAssignment_1 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3540:1: ( ( rule__WriteToTape__SymbolAssignment_1 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3541:1: ( rule__WriteToTape__SymbolAssignment_1 )
            {
             before(grammarAccess.getWriteToTapeAccess().getSymbolAssignment_1()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3542:1: ( rule__WriteToTape__SymbolAssignment_1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3542:2: rule__WriteToTape__SymbolAssignment_1
            {
            pushFollow(FOLLOW_rule__WriteToTape__SymbolAssignment_1_in_rule__WriteToTape__Group__1__Impl7138);
            rule__WriteToTape__SymbolAssignment_1();
            _fsp--;


            }

             after(grammarAccess.getWriteToTapeAccess().getSymbolAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__WriteToTape__Group__1__Impl


    // $ANTLR start rule__WriteToTape__Group__2
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3552:1: rule__WriteToTape__Group__2 : rule__WriteToTape__Group__2__Impl ;
    public final void rule__WriteToTape__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3556:1: ( rule__WriteToTape__Group__2__Impl )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3557:2: rule__WriteToTape__Group__2__Impl
            {
            pushFollow(FOLLOW_rule__WriteToTape__Group__2__Impl_in_rule__WriteToTape__Group__27168);
            rule__WriteToTape__Group__2__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__WriteToTape__Group__2


    // $ANTLR start rule__WriteToTape__Group__2__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3563:1: rule__WriteToTape__Group__2__Impl : ( ( rule__WriteToTape__Group_2__0 )? ) ;
    public final void rule__WriteToTape__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3567:1: ( ( ( rule__WriteToTape__Group_2__0 )? ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3568:1: ( ( rule__WriteToTape__Group_2__0 )? )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3568:1: ( ( rule__WriteToTape__Group_2__0 )? )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3569:1: ( rule__WriteToTape__Group_2__0 )?
            {
             before(grammarAccess.getWriteToTapeAccess().getGroup_2()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3570:1: ( rule__WriteToTape__Group_2__0 )?
            int alt27=2;
            int LA27_0 = input.LA(1);

            if ( (LA27_0==37) ) {
                alt27=1;
            }
            switch (alt27) {
                case 1 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3570:2: rule__WriteToTape__Group_2__0
                    {
                    pushFollow(FOLLOW_rule__WriteToTape__Group_2__0_in_rule__WriteToTape__Group__2__Impl7195);
                    rule__WriteToTape__Group_2__0();
                    _fsp--;


                    }
                    break;

            }

             after(grammarAccess.getWriteToTapeAccess().getGroup_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__WriteToTape__Group__2__Impl


    // $ANTLR start rule__WriteToTape__Group_2__0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3586:1: rule__WriteToTape__Group_2__0 : rule__WriteToTape__Group_2__0__Impl rule__WriteToTape__Group_2__1 ;
    public final void rule__WriteToTape__Group_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3590:1: ( rule__WriteToTape__Group_2__0__Impl rule__WriteToTape__Group_2__1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3591:2: rule__WriteToTape__Group_2__0__Impl rule__WriteToTape__Group_2__1
            {
            pushFollow(FOLLOW_rule__WriteToTape__Group_2__0__Impl_in_rule__WriteToTape__Group_2__07232);
            rule__WriteToTape__Group_2__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__WriteToTape__Group_2__1_in_rule__WriteToTape__Group_2__07235);
            rule__WriteToTape__Group_2__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__WriteToTape__Group_2__0


    // $ANTLR start rule__WriteToTape__Group_2__0__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3598:1: rule__WriteToTape__Group_2__0__Impl : ( '<-' ) ;
    public final void rule__WriteToTape__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3602:1: ( ( '<-' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3603:1: ( '<-' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3603:1: ( '<-' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3604:1: '<-'
            {
             before(grammarAccess.getWriteToTapeAccess().getLessThanSignHyphenMinusKeyword_2_0()); 
            match(input,37,FOLLOW_37_in_rule__WriteToTape__Group_2__0__Impl7263); 
             after(grammarAccess.getWriteToTapeAccess().getLessThanSignHyphenMinusKeyword_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__WriteToTape__Group_2__0__Impl


    // $ANTLR start rule__WriteToTape__Group_2__1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3617:1: rule__WriteToTape__Group_2__1 : rule__WriteToTape__Group_2__1__Impl ;
    public final void rule__WriteToTape__Group_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3621:1: ( rule__WriteToTape__Group_2__1__Impl )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3622:2: rule__WriteToTape__Group_2__1__Impl
            {
            pushFollow(FOLLOW_rule__WriteToTape__Group_2__1__Impl_in_rule__WriteToTape__Group_2__17294);
            rule__WriteToTape__Group_2__1__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__WriteToTape__Group_2__1


    // $ANTLR start rule__WriteToTape__Group_2__1__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3628:1: rule__WriteToTape__Group_2__1__Impl : ( ( rule__WriteToTape__TapeAssignment_2_1 ) ) ;
    public final void rule__WriteToTape__Group_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3632:1: ( ( ( rule__WriteToTape__TapeAssignment_2_1 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3633:1: ( ( rule__WriteToTape__TapeAssignment_2_1 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3633:1: ( ( rule__WriteToTape__TapeAssignment_2_1 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3634:1: ( rule__WriteToTape__TapeAssignment_2_1 )
            {
             before(grammarAccess.getWriteToTapeAccess().getTapeAssignment_2_1()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3635:1: ( rule__WriteToTape__TapeAssignment_2_1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3635:2: rule__WriteToTape__TapeAssignment_2_1
            {
            pushFollow(FOLLOW_rule__WriteToTape__TapeAssignment_2_1_in_rule__WriteToTape__Group_2__1__Impl7321);
            rule__WriteToTape__TapeAssignment_2_1();
            _fsp--;


            }

             after(grammarAccess.getWriteToTapeAccess().getTapeAssignment_2_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__WriteToTape__Group_2__1__Impl


    // $ANTLR start rule__MoveTapeLeft__Group__0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3649:1: rule__MoveTapeLeft__Group__0 : rule__MoveTapeLeft__Group__0__Impl rule__MoveTapeLeft__Group__1 ;
    public final void rule__MoveTapeLeft__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3653:1: ( rule__MoveTapeLeft__Group__0__Impl rule__MoveTapeLeft__Group__1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3654:2: rule__MoveTapeLeft__Group__0__Impl rule__MoveTapeLeft__Group__1
            {
            pushFollow(FOLLOW_rule__MoveTapeLeft__Group__0__Impl_in_rule__MoveTapeLeft__Group__07355);
            rule__MoveTapeLeft__Group__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__MoveTapeLeft__Group__1_in_rule__MoveTapeLeft__Group__07358);
            rule__MoveTapeLeft__Group__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MoveTapeLeft__Group__0


    // $ANTLR start rule__MoveTapeLeft__Group__0__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3661:1: rule__MoveTapeLeft__Group__0__Impl : ( () ) ;
    public final void rule__MoveTapeLeft__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3665:1: ( ( () ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3666:1: ( () )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3666:1: ( () )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3667:1: ()
            {
             before(grammarAccess.getMoveTapeLeftAccess().getMoveTapeLeftAction_0()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3668:1: ()
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3670:1: 
            {
            }

             after(grammarAccess.getMoveTapeLeftAccess().getMoveTapeLeftAction_0()); 

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MoveTapeLeft__Group__0__Impl


    // $ANTLR start rule__MoveTapeLeft__Group__1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3680:1: rule__MoveTapeLeft__Group__1 : rule__MoveTapeLeft__Group__1__Impl rule__MoveTapeLeft__Group__2 ;
    public final void rule__MoveTapeLeft__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3684:1: ( rule__MoveTapeLeft__Group__1__Impl rule__MoveTapeLeft__Group__2 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3685:2: rule__MoveTapeLeft__Group__1__Impl rule__MoveTapeLeft__Group__2
            {
            pushFollow(FOLLOW_rule__MoveTapeLeft__Group__1__Impl_in_rule__MoveTapeLeft__Group__17416);
            rule__MoveTapeLeft__Group__1__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__MoveTapeLeft__Group__2_in_rule__MoveTapeLeft__Group__17419);
            rule__MoveTapeLeft__Group__2();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MoveTapeLeft__Group__1


    // $ANTLR start rule__MoveTapeLeft__Group__1__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3692:1: rule__MoveTapeLeft__Group__1__Impl : ( 'left' ) ;
    public final void rule__MoveTapeLeft__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3696:1: ( ( 'left' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3697:1: ( 'left' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3697:1: ( 'left' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3698:1: 'left'
            {
             before(grammarAccess.getMoveTapeLeftAccess().getLeftKeyword_1()); 
            match(input,39,FOLLOW_39_in_rule__MoveTapeLeft__Group__1__Impl7447); 
             after(grammarAccess.getMoveTapeLeftAccess().getLeftKeyword_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MoveTapeLeft__Group__1__Impl


    // $ANTLR start rule__MoveTapeLeft__Group__2
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3711:1: rule__MoveTapeLeft__Group__2 : rule__MoveTapeLeft__Group__2__Impl ;
    public final void rule__MoveTapeLeft__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3715:1: ( rule__MoveTapeLeft__Group__2__Impl )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3716:2: rule__MoveTapeLeft__Group__2__Impl
            {
            pushFollow(FOLLOW_rule__MoveTapeLeft__Group__2__Impl_in_rule__MoveTapeLeft__Group__27478);
            rule__MoveTapeLeft__Group__2__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MoveTapeLeft__Group__2


    // $ANTLR start rule__MoveTapeLeft__Group__2__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3722:1: rule__MoveTapeLeft__Group__2__Impl : ( ( rule__MoveTapeLeft__Group_2__0 )? ) ;
    public final void rule__MoveTapeLeft__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3726:1: ( ( ( rule__MoveTapeLeft__Group_2__0 )? ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3727:1: ( ( rule__MoveTapeLeft__Group_2__0 )? )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3727:1: ( ( rule__MoveTapeLeft__Group_2__0 )? )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3728:1: ( rule__MoveTapeLeft__Group_2__0 )?
            {
             before(grammarAccess.getMoveTapeLeftAccess().getGroup_2()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3729:1: ( rule__MoveTapeLeft__Group_2__0 )?
            int alt28=2;
            int LA28_0 = input.LA(1);

            if ( (LA28_0==37) ) {
                alt28=1;
            }
            switch (alt28) {
                case 1 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3729:2: rule__MoveTapeLeft__Group_2__0
                    {
                    pushFollow(FOLLOW_rule__MoveTapeLeft__Group_2__0_in_rule__MoveTapeLeft__Group__2__Impl7505);
                    rule__MoveTapeLeft__Group_2__0();
                    _fsp--;


                    }
                    break;

            }

             after(grammarAccess.getMoveTapeLeftAccess().getGroup_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MoveTapeLeft__Group__2__Impl


    // $ANTLR start rule__MoveTapeLeft__Group_2__0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3745:1: rule__MoveTapeLeft__Group_2__0 : rule__MoveTapeLeft__Group_2__0__Impl rule__MoveTapeLeft__Group_2__1 ;
    public final void rule__MoveTapeLeft__Group_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3749:1: ( rule__MoveTapeLeft__Group_2__0__Impl rule__MoveTapeLeft__Group_2__1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3750:2: rule__MoveTapeLeft__Group_2__0__Impl rule__MoveTapeLeft__Group_2__1
            {
            pushFollow(FOLLOW_rule__MoveTapeLeft__Group_2__0__Impl_in_rule__MoveTapeLeft__Group_2__07542);
            rule__MoveTapeLeft__Group_2__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__MoveTapeLeft__Group_2__1_in_rule__MoveTapeLeft__Group_2__07545);
            rule__MoveTapeLeft__Group_2__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MoveTapeLeft__Group_2__0


    // $ANTLR start rule__MoveTapeLeft__Group_2__0__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3757:1: rule__MoveTapeLeft__Group_2__0__Impl : ( '<-' ) ;
    public final void rule__MoveTapeLeft__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3761:1: ( ( '<-' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3762:1: ( '<-' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3762:1: ( '<-' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3763:1: '<-'
            {
             before(grammarAccess.getMoveTapeLeftAccess().getLessThanSignHyphenMinusKeyword_2_0()); 
            match(input,37,FOLLOW_37_in_rule__MoveTapeLeft__Group_2__0__Impl7573); 
             after(grammarAccess.getMoveTapeLeftAccess().getLessThanSignHyphenMinusKeyword_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MoveTapeLeft__Group_2__0__Impl


    // $ANTLR start rule__MoveTapeLeft__Group_2__1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3776:1: rule__MoveTapeLeft__Group_2__1 : rule__MoveTapeLeft__Group_2__1__Impl ;
    public final void rule__MoveTapeLeft__Group_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3780:1: ( rule__MoveTapeLeft__Group_2__1__Impl )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3781:2: rule__MoveTapeLeft__Group_2__1__Impl
            {
            pushFollow(FOLLOW_rule__MoveTapeLeft__Group_2__1__Impl_in_rule__MoveTapeLeft__Group_2__17604);
            rule__MoveTapeLeft__Group_2__1__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MoveTapeLeft__Group_2__1


    // $ANTLR start rule__MoveTapeLeft__Group_2__1__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3787:1: rule__MoveTapeLeft__Group_2__1__Impl : ( ( rule__MoveTapeLeft__TapeAssignment_2_1 ) ) ;
    public final void rule__MoveTapeLeft__Group_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3791:1: ( ( ( rule__MoveTapeLeft__TapeAssignment_2_1 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3792:1: ( ( rule__MoveTapeLeft__TapeAssignment_2_1 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3792:1: ( ( rule__MoveTapeLeft__TapeAssignment_2_1 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3793:1: ( rule__MoveTapeLeft__TapeAssignment_2_1 )
            {
             before(grammarAccess.getMoveTapeLeftAccess().getTapeAssignment_2_1()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3794:1: ( rule__MoveTapeLeft__TapeAssignment_2_1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3794:2: rule__MoveTapeLeft__TapeAssignment_2_1
            {
            pushFollow(FOLLOW_rule__MoveTapeLeft__TapeAssignment_2_1_in_rule__MoveTapeLeft__Group_2__1__Impl7631);
            rule__MoveTapeLeft__TapeAssignment_2_1();
            _fsp--;


            }

             after(grammarAccess.getMoveTapeLeftAccess().getTapeAssignment_2_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MoveTapeLeft__Group_2__1__Impl


    // $ANTLR start rule__MoveTapeRight__Group__0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3808:1: rule__MoveTapeRight__Group__0 : rule__MoveTapeRight__Group__0__Impl rule__MoveTapeRight__Group__1 ;
    public final void rule__MoveTapeRight__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3812:1: ( rule__MoveTapeRight__Group__0__Impl rule__MoveTapeRight__Group__1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3813:2: rule__MoveTapeRight__Group__0__Impl rule__MoveTapeRight__Group__1
            {
            pushFollow(FOLLOW_rule__MoveTapeRight__Group__0__Impl_in_rule__MoveTapeRight__Group__07665);
            rule__MoveTapeRight__Group__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__MoveTapeRight__Group__1_in_rule__MoveTapeRight__Group__07668);
            rule__MoveTapeRight__Group__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MoveTapeRight__Group__0


    // $ANTLR start rule__MoveTapeRight__Group__0__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3820:1: rule__MoveTapeRight__Group__0__Impl : ( () ) ;
    public final void rule__MoveTapeRight__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3824:1: ( ( () ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3825:1: ( () )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3825:1: ( () )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3826:1: ()
            {
             before(grammarAccess.getMoveTapeRightAccess().getMoveTapeRightAction_0()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3827:1: ()
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3829:1: 
            {
            }

             after(grammarAccess.getMoveTapeRightAccess().getMoveTapeRightAction_0()); 

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MoveTapeRight__Group__0__Impl


    // $ANTLR start rule__MoveTapeRight__Group__1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3839:1: rule__MoveTapeRight__Group__1 : rule__MoveTapeRight__Group__1__Impl rule__MoveTapeRight__Group__2 ;
    public final void rule__MoveTapeRight__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3843:1: ( rule__MoveTapeRight__Group__1__Impl rule__MoveTapeRight__Group__2 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3844:2: rule__MoveTapeRight__Group__1__Impl rule__MoveTapeRight__Group__2
            {
            pushFollow(FOLLOW_rule__MoveTapeRight__Group__1__Impl_in_rule__MoveTapeRight__Group__17726);
            rule__MoveTapeRight__Group__1__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__MoveTapeRight__Group__2_in_rule__MoveTapeRight__Group__17729);
            rule__MoveTapeRight__Group__2();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MoveTapeRight__Group__1


    // $ANTLR start rule__MoveTapeRight__Group__1__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3851:1: rule__MoveTapeRight__Group__1__Impl : ( 'right' ) ;
    public final void rule__MoveTapeRight__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3855:1: ( ( 'right' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3856:1: ( 'right' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3856:1: ( 'right' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3857:1: 'right'
            {
             before(grammarAccess.getMoveTapeRightAccess().getRightKeyword_1()); 
            match(input,40,FOLLOW_40_in_rule__MoveTapeRight__Group__1__Impl7757); 
             after(grammarAccess.getMoveTapeRightAccess().getRightKeyword_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MoveTapeRight__Group__1__Impl


    // $ANTLR start rule__MoveTapeRight__Group__2
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3870:1: rule__MoveTapeRight__Group__2 : rule__MoveTapeRight__Group__2__Impl ;
    public final void rule__MoveTapeRight__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3874:1: ( rule__MoveTapeRight__Group__2__Impl )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3875:2: rule__MoveTapeRight__Group__2__Impl
            {
            pushFollow(FOLLOW_rule__MoveTapeRight__Group__2__Impl_in_rule__MoveTapeRight__Group__27788);
            rule__MoveTapeRight__Group__2__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MoveTapeRight__Group__2


    // $ANTLR start rule__MoveTapeRight__Group__2__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3881:1: rule__MoveTapeRight__Group__2__Impl : ( ( rule__MoveTapeRight__Group_2__0 )? ) ;
    public final void rule__MoveTapeRight__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3885:1: ( ( ( rule__MoveTapeRight__Group_2__0 )? ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3886:1: ( ( rule__MoveTapeRight__Group_2__0 )? )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3886:1: ( ( rule__MoveTapeRight__Group_2__0 )? )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3887:1: ( rule__MoveTapeRight__Group_2__0 )?
            {
             before(grammarAccess.getMoveTapeRightAccess().getGroup_2()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3888:1: ( rule__MoveTapeRight__Group_2__0 )?
            int alt29=2;
            int LA29_0 = input.LA(1);

            if ( (LA29_0==37) ) {
                alt29=1;
            }
            switch (alt29) {
                case 1 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3888:2: rule__MoveTapeRight__Group_2__0
                    {
                    pushFollow(FOLLOW_rule__MoveTapeRight__Group_2__0_in_rule__MoveTapeRight__Group__2__Impl7815);
                    rule__MoveTapeRight__Group_2__0();
                    _fsp--;


                    }
                    break;

            }

             after(grammarAccess.getMoveTapeRightAccess().getGroup_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MoveTapeRight__Group__2__Impl


    // $ANTLR start rule__MoveTapeRight__Group_2__0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3904:1: rule__MoveTapeRight__Group_2__0 : rule__MoveTapeRight__Group_2__0__Impl rule__MoveTapeRight__Group_2__1 ;
    public final void rule__MoveTapeRight__Group_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3908:1: ( rule__MoveTapeRight__Group_2__0__Impl rule__MoveTapeRight__Group_2__1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3909:2: rule__MoveTapeRight__Group_2__0__Impl rule__MoveTapeRight__Group_2__1
            {
            pushFollow(FOLLOW_rule__MoveTapeRight__Group_2__0__Impl_in_rule__MoveTapeRight__Group_2__07852);
            rule__MoveTapeRight__Group_2__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__MoveTapeRight__Group_2__1_in_rule__MoveTapeRight__Group_2__07855);
            rule__MoveTapeRight__Group_2__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MoveTapeRight__Group_2__0


    // $ANTLR start rule__MoveTapeRight__Group_2__0__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3916:1: rule__MoveTapeRight__Group_2__0__Impl : ( '<-' ) ;
    public final void rule__MoveTapeRight__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3920:1: ( ( '<-' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3921:1: ( '<-' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3921:1: ( '<-' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3922:1: '<-'
            {
             before(grammarAccess.getMoveTapeRightAccess().getLessThanSignHyphenMinusKeyword_2_0()); 
            match(input,37,FOLLOW_37_in_rule__MoveTapeRight__Group_2__0__Impl7883); 
             after(grammarAccess.getMoveTapeRightAccess().getLessThanSignHyphenMinusKeyword_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MoveTapeRight__Group_2__0__Impl


    // $ANTLR start rule__MoveTapeRight__Group_2__1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3935:1: rule__MoveTapeRight__Group_2__1 : rule__MoveTapeRight__Group_2__1__Impl ;
    public final void rule__MoveTapeRight__Group_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3939:1: ( rule__MoveTapeRight__Group_2__1__Impl )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3940:2: rule__MoveTapeRight__Group_2__1__Impl
            {
            pushFollow(FOLLOW_rule__MoveTapeRight__Group_2__1__Impl_in_rule__MoveTapeRight__Group_2__17914);
            rule__MoveTapeRight__Group_2__1__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MoveTapeRight__Group_2__1


    // $ANTLR start rule__MoveTapeRight__Group_2__1__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3946:1: rule__MoveTapeRight__Group_2__1__Impl : ( ( rule__MoveTapeRight__TapeAssignment_2_1 ) ) ;
    public final void rule__MoveTapeRight__Group_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3950:1: ( ( ( rule__MoveTapeRight__TapeAssignment_2_1 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3951:1: ( ( rule__MoveTapeRight__TapeAssignment_2_1 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3951:1: ( ( rule__MoveTapeRight__TapeAssignment_2_1 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3952:1: ( rule__MoveTapeRight__TapeAssignment_2_1 )
            {
             before(grammarAccess.getMoveTapeRightAccess().getTapeAssignment_2_1()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3953:1: ( rule__MoveTapeRight__TapeAssignment_2_1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3953:2: rule__MoveTapeRight__TapeAssignment_2_1
            {
            pushFollow(FOLLOW_rule__MoveTapeRight__TapeAssignment_2_1_in_rule__MoveTapeRight__Group_2__1__Impl7941);
            rule__MoveTapeRight__TapeAssignment_2_1();
            _fsp--;


            }

             after(grammarAccess.getMoveTapeRightAccess().getTapeAssignment_2_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MoveTapeRight__Group_2__1__Impl


    // $ANTLR start rule__Loop__Group__0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3967:1: rule__Loop__Group__0 : rule__Loop__Group__0__Impl rule__Loop__Group__1 ;
    public final void rule__Loop__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3971:1: ( rule__Loop__Group__0__Impl rule__Loop__Group__1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3972:2: rule__Loop__Group__0__Impl rule__Loop__Group__1
            {
            pushFollow(FOLLOW_rule__Loop__Group__0__Impl_in_rule__Loop__Group__07975);
            rule__Loop__Group__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Loop__Group__1_in_rule__Loop__Group__07978);
            rule__Loop__Group__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Loop__Group__0


    // $ANTLR start rule__Loop__Group__0__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3979:1: rule__Loop__Group__0__Impl : ( () ) ;
    public final void rule__Loop__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3983:1: ( ( () ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3984:1: ( () )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3984:1: ( () )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3985:1: ()
            {
             before(grammarAccess.getLoopAccess().getLoopAction_0()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3986:1: ()
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3988:1: 
            {
            }

             after(grammarAccess.getLoopAccess().getLoopAction_0()); 

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Loop__Group__0__Impl


    // $ANTLR start rule__Loop__Group__1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:3998:1: rule__Loop__Group__1 : rule__Loop__Group__1__Impl rule__Loop__Group__2 ;
    public final void rule__Loop__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4002:1: ( rule__Loop__Group__1__Impl rule__Loop__Group__2 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4003:2: rule__Loop__Group__1__Impl rule__Loop__Group__2
            {
            pushFollow(FOLLOW_rule__Loop__Group__1__Impl_in_rule__Loop__Group__18036);
            rule__Loop__Group__1__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Loop__Group__2_in_rule__Loop__Group__18039);
            rule__Loop__Group__2();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Loop__Group__1


    // $ANTLR start rule__Loop__Group__1__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4010:1: rule__Loop__Group__1__Impl : ( ( rule__Loop__Group_1__0 )? ) ;
    public final void rule__Loop__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4014:1: ( ( ( rule__Loop__Group_1__0 )? ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4015:1: ( ( rule__Loop__Group_1__0 )? )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4015:1: ( ( rule__Loop__Group_1__0 )? )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4016:1: ( rule__Loop__Group_1__0 )?
            {
             before(grammarAccess.getLoopAccess().getGroup_1()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4017:1: ( rule__Loop__Group_1__0 )?
            int alt30=2;
            int LA30_0 = input.LA(1);

            if ( (LA30_0==RULE_ID) ) {
                alt30=1;
            }
            switch (alt30) {
                case 1 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4017:2: rule__Loop__Group_1__0
                    {
                    pushFollow(FOLLOW_rule__Loop__Group_1__0_in_rule__Loop__Group__1__Impl8066);
                    rule__Loop__Group_1__0();
                    _fsp--;


                    }
                    break;

            }

             after(grammarAccess.getLoopAccess().getGroup_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Loop__Group__1__Impl


    // $ANTLR start rule__Loop__Group__2
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4027:1: rule__Loop__Group__2 : rule__Loop__Group__2__Impl rule__Loop__Group__3 ;
    public final void rule__Loop__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4031:1: ( rule__Loop__Group__2__Impl rule__Loop__Group__3 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4032:2: rule__Loop__Group__2__Impl rule__Loop__Group__3
            {
            pushFollow(FOLLOW_rule__Loop__Group__2__Impl_in_rule__Loop__Group__28097);
            rule__Loop__Group__2__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Loop__Group__3_in_rule__Loop__Group__28100);
            rule__Loop__Group__3();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Loop__Group__2


    // $ANTLR start rule__Loop__Group__2__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4039:1: rule__Loop__Group__2__Impl : ( 'loop' ) ;
    public final void rule__Loop__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4043:1: ( ( 'loop' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4044:1: ( 'loop' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4044:1: ( 'loop' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4045:1: 'loop'
            {
             before(grammarAccess.getLoopAccess().getLoopKeyword_2()); 
            match(input,41,FOLLOW_41_in_rule__Loop__Group__2__Impl8128); 
             after(grammarAccess.getLoopAccess().getLoopKeyword_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Loop__Group__2__Impl


    // $ANTLR start rule__Loop__Group__3
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4058:1: rule__Loop__Group__3 : rule__Loop__Group__3__Impl rule__Loop__Group__4 ;
    public final void rule__Loop__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4062:1: ( rule__Loop__Group__3__Impl rule__Loop__Group__4 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4063:2: rule__Loop__Group__3__Impl rule__Loop__Group__4
            {
            pushFollow(FOLLOW_rule__Loop__Group__3__Impl_in_rule__Loop__Group__38159);
            rule__Loop__Group__3__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Loop__Group__4_in_rule__Loop__Group__38162);
            rule__Loop__Group__4();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Loop__Group__3


    // $ANTLR start rule__Loop__Group__3__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4070:1: rule__Loop__Group__3__Impl : ( '{' ) ;
    public final void rule__Loop__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4074:1: ( ( '{' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4075:1: ( '{' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4075:1: ( '{' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4076:1: '{'
            {
             before(grammarAccess.getLoopAccess().getLeftCurlyBracketKeyword_3()); 
            match(input,22,FOLLOW_22_in_rule__Loop__Group__3__Impl8190); 
             after(grammarAccess.getLoopAccess().getLeftCurlyBracketKeyword_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Loop__Group__3__Impl


    // $ANTLR start rule__Loop__Group__4
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4089:1: rule__Loop__Group__4 : rule__Loop__Group__4__Impl ;
    public final void rule__Loop__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4093:1: ( rule__Loop__Group__4__Impl )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4094:2: rule__Loop__Group__4__Impl
            {
            pushFollow(FOLLOW_rule__Loop__Group__4__Impl_in_rule__Loop__Group__48221);
            rule__Loop__Group__4__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Loop__Group__4


    // $ANTLR start rule__Loop__Group__4__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4100:1: rule__Loop__Group__4__Impl : ( '}' ) ;
    public final void rule__Loop__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4104:1: ( ( '}' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4105:1: ( '}' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4105:1: ( '}' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4106:1: '}'
            {
             before(grammarAccess.getLoopAccess().getRightCurlyBracketKeyword_4()); 
            match(input,23,FOLLOW_23_in_rule__Loop__Group__4__Impl8249); 
             after(grammarAccess.getLoopAccess().getRightCurlyBracketKeyword_4()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Loop__Group__4__Impl


    // $ANTLR start rule__Loop__Group_1__0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4129:1: rule__Loop__Group_1__0 : rule__Loop__Group_1__0__Impl rule__Loop__Group_1__1 ;
    public final void rule__Loop__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4133:1: ( rule__Loop__Group_1__0__Impl rule__Loop__Group_1__1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4134:2: rule__Loop__Group_1__0__Impl rule__Loop__Group_1__1
            {
            pushFollow(FOLLOW_rule__Loop__Group_1__0__Impl_in_rule__Loop__Group_1__08290);
            rule__Loop__Group_1__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Loop__Group_1__1_in_rule__Loop__Group_1__08293);
            rule__Loop__Group_1__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Loop__Group_1__0


    // $ANTLR start rule__Loop__Group_1__0__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4141:1: rule__Loop__Group_1__0__Impl : ( ( rule__Loop__NameAssignment_1_0 ) ) ;
    public final void rule__Loop__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4145:1: ( ( ( rule__Loop__NameAssignment_1_0 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4146:1: ( ( rule__Loop__NameAssignment_1_0 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4146:1: ( ( rule__Loop__NameAssignment_1_0 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4147:1: ( rule__Loop__NameAssignment_1_0 )
            {
             before(grammarAccess.getLoopAccess().getNameAssignment_1_0()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4148:1: ( rule__Loop__NameAssignment_1_0 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4148:2: rule__Loop__NameAssignment_1_0
            {
            pushFollow(FOLLOW_rule__Loop__NameAssignment_1_0_in_rule__Loop__Group_1__0__Impl8320);
            rule__Loop__NameAssignment_1_0();
            _fsp--;


            }

             after(grammarAccess.getLoopAccess().getNameAssignment_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Loop__Group_1__0__Impl


    // $ANTLR start rule__Loop__Group_1__1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4158:1: rule__Loop__Group_1__1 : rule__Loop__Group_1__1__Impl ;
    public final void rule__Loop__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4162:1: ( rule__Loop__Group_1__1__Impl )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4163:2: rule__Loop__Group_1__1__Impl
            {
            pushFollow(FOLLOW_rule__Loop__Group_1__1__Impl_in_rule__Loop__Group_1__18350);
            rule__Loop__Group_1__1__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Loop__Group_1__1


    // $ANTLR start rule__Loop__Group_1__1__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4169:1: rule__Loop__Group_1__1__Impl : ( ':' ) ;
    public final void rule__Loop__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4173:1: ( ( ':' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4174:1: ( ':' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4174:1: ( ':' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4175:1: ':'
            {
             before(grammarAccess.getLoopAccess().getColonKeyword_1_1()); 
            match(input,24,FOLLOW_24_in_rule__Loop__Group_1__1__Impl8378); 
             after(grammarAccess.getLoopAccess().getColonKeyword_1_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Loop__Group_1__1__Impl


    // $ANTLR start rule__While__Group__0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4192:1: rule__While__Group__0 : rule__While__Group__0__Impl rule__While__Group__1 ;
    public final void rule__While__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4196:1: ( rule__While__Group__0__Impl rule__While__Group__1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4197:2: rule__While__Group__0__Impl rule__While__Group__1
            {
            pushFollow(FOLLOW_rule__While__Group__0__Impl_in_rule__While__Group__08413);
            rule__While__Group__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__While__Group__1_in_rule__While__Group__08416);
            rule__While__Group__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__While__Group__0


    // $ANTLR start rule__While__Group__0__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4204:1: rule__While__Group__0__Impl : ( () ) ;
    public final void rule__While__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4208:1: ( ( () ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4209:1: ( () )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4209:1: ( () )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4210:1: ()
            {
             before(grammarAccess.getWhileAccess().getWhileAction_0()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4211:1: ()
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4213:1: 
            {
            }

             after(grammarAccess.getWhileAccess().getWhileAction_0()); 

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__While__Group__0__Impl


    // $ANTLR start rule__While__Group__1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4223:1: rule__While__Group__1 : rule__While__Group__1__Impl rule__While__Group__2 ;
    public final void rule__While__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4227:1: ( rule__While__Group__1__Impl rule__While__Group__2 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4228:2: rule__While__Group__1__Impl rule__While__Group__2
            {
            pushFollow(FOLLOW_rule__While__Group__1__Impl_in_rule__While__Group__18474);
            rule__While__Group__1__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__While__Group__2_in_rule__While__Group__18477);
            rule__While__Group__2();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__While__Group__1


    // $ANTLR start rule__While__Group__1__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4235:1: rule__While__Group__1__Impl : ( ( rule__While__Group_1__0 )? ) ;
    public final void rule__While__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4239:1: ( ( ( rule__While__Group_1__0 )? ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4240:1: ( ( rule__While__Group_1__0 )? )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4240:1: ( ( rule__While__Group_1__0 )? )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4241:1: ( rule__While__Group_1__0 )?
            {
             before(grammarAccess.getWhileAccess().getGroup_1()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4242:1: ( rule__While__Group_1__0 )?
            int alt31=2;
            int LA31_0 = input.LA(1);

            if ( (LA31_0==RULE_ID) ) {
                alt31=1;
            }
            switch (alt31) {
                case 1 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4242:2: rule__While__Group_1__0
                    {
                    pushFollow(FOLLOW_rule__While__Group_1__0_in_rule__While__Group__1__Impl8504);
                    rule__While__Group_1__0();
                    _fsp--;


                    }
                    break;

            }

             after(grammarAccess.getWhileAccess().getGroup_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__While__Group__1__Impl


    // $ANTLR start rule__While__Group__2
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4252:1: rule__While__Group__2 : rule__While__Group__2__Impl rule__While__Group__3 ;
    public final void rule__While__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4256:1: ( rule__While__Group__2__Impl rule__While__Group__3 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4257:2: rule__While__Group__2__Impl rule__While__Group__3
            {
            pushFollow(FOLLOW_rule__While__Group__2__Impl_in_rule__While__Group__28535);
            rule__While__Group__2__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__While__Group__3_in_rule__While__Group__28538);
            rule__While__Group__3();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__While__Group__2


    // $ANTLR start rule__While__Group__2__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4264:1: rule__While__Group__2__Impl : ( 'while' ) ;
    public final void rule__While__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4268:1: ( ( 'while' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4269:1: ( 'while' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4269:1: ( 'while' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4270:1: 'while'
            {
             before(grammarAccess.getWhileAccess().getWhileKeyword_2()); 
            match(input,42,FOLLOW_42_in_rule__While__Group__2__Impl8566); 
             after(grammarAccess.getWhileAccess().getWhileKeyword_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__While__Group__2__Impl


    // $ANTLR start rule__While__Group__3
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4283:1: rule__While__Group__3 : rule__While__Group__3__Impl rule__While__Group__4 ;
    public final void rule__While__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4287:1: ( rule__While__Group__3__Impl rule__While__Group__4 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4288:2: rule__While__Group__3__Impl rule__While__Group__4
            {
            pushFollow(FOLLOW_rule__While__Group__3__Impl_in_rule__While__Group__38597);
            rule__While__Group__3__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__While__Group__4_in_rule__While__Group__38600);
            rule__While__Group__4();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__While__Group__3


    // $ANTLR start rule__While__Group__3__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4295:1: rule__While__Group__3__Impl : ( '{' ) ;
    public final void rule__While__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4299:1: ( ( '{' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4300:1: ( '{' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4300:1: ( '{' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4301:1: '{'
            {
             before(grammarAccess.getWhileAccess().getLeftCurlyBracketKeyword_3()); 
            match(input,22,FOLLOW_22_in_rule__While__Group__3__Impl8628); 
             after(grammarAccess.getWhileAccess().getLeftCurlyBracketKeyword_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__While__Group__3__Impl


    // $ANTLR start rule__While__Group__4
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4314:1: rule__While__Group__4 : rule__While__Group__4__Impl ;
    public final void rule__While__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4318:1: ( rule__While__Group__4__Impl )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4319:2: rule__While__Group__4__Impl
            {
            pushFollow(FOLLOW_rule__While__Group__4__Impl_in_rule__While__Group__48659);
            rule__While__Group__4__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__While__Group__4


    // $ANTLR start rule__While__Group__4__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4325:1: rule__While__Group__4__Impl : ( '}' ) ;
    public final void rule__While__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4329:1: ( ( '}' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4330:1: ( '}' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4330:1: ( '}' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4331:1: '}'
            {
             before(grammarAccess.getWhileAccess().getRightCurlyBracketKeyword_4()); 
            match(input,23,FOLLOW_23_in_rule__While__Group__4__Impl8687); 
             after(grammarAccess.getWhileAccess().getRightCurlyBracketKeyword_4()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__While__Group__4__Impl


    // $ANTLR start rule__While__Group_1__0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4354:1: rule__While__Group_1__0 : rule__While__Group_1__0__Impl rule__While__Group_1__1 ;
    public final void rule__While__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4358:1: ( rule__While__Group_1__0__Impl rule__While__Group_1__1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4359:2: rule__While__Group_1__0__Impl rule__While__Group_1__1
            {
            pushFollow(FOLLOW_rule__While__Group_1__0__Impl_in_rule__While__Group_1__08728);
            rule__While__Group_1__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__While__Group_1__1_in_rule__While__Group_1__08731);
            rule__While__Group_1__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__While__Group_1__0


    // $ANTLR start rule__While__Group_1__0__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4366:1: rule__While__Group_1__0__Impl : ( ( rule__While__NameAssignment_1_0 ) ) ;
    public final void rule__While__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4370:1: ( ( ( rule__While__NameAssignment_1_0 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4371:1: ( ( rule__While__NameAssignment_1_0 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4371:1: ( ( rule__While__NameAssignment_1_0 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4372:1: ( rule__While__NameAssignment_1_0 )
            {
             before(grammarAccess.getWhileAccess().getNameAssignment_1_0()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4373:1: ( rule__While__NameAssignment_1_0 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4373:2: rule__While__NameAssignment_1_0
            {
            pushFollow(FOLLOW_rule__While__NameAssignment_1_0_in_rule__While__Group_1__0__Impl8758);
            rule__While__NameAssignment_1_0();
            _fsp--;


            }

             after(grammarAccess.getWhileAccess().getNameAssignment_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__While__Group_1__0__Impl


    // $ANTLR start rule__While__Group_1__1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4383:1: rule__While__Group_1__1 : rule__While__Group_1__1__Impl ;
    public final void rule__While__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4387:1: ( rule__While__Group_1__1__Impl )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4388:2: rule__While__Group_1__1__Impl
            {
            pushFollow(FOLLOW_rule__While__Group_1__1__Impl_in_rule__While__Group_1__18788);
            rule__While__Group_1__1__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__While__Group_1__1


    // $ANTLR start rule__While__Group_1__1__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4394:1: rule__While__Group_1__1__Impl : ( ':' ) ;
    public final void rule__While__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4398:1: ( ( ':' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4399:1: ( ':' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4399:1: ( ':' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4400:1: ':'
            {
             before(grammarAccess.getWhileAccess().getColonKeyword_1_1()); 
            match(input,24,FOLLOW_24_in_rule__While__Group_1__1__Impl8816); 
             after(grammarAccess.getWhileAccess().getColonKeyword_1_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__While__Group_1__1__Impl


    // $ANTLR start rule__Turing__Group__0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4417:1: rule__Turing__Group__0 : rule__Turing__Group__0__Impl rule__Turing__Group__1 ;
    public final void rule__Turing__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4421:1: ( rule__Turing__Group__0__Impl rule__Turing__Group__1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4422:2: rule__Turing__Group__0__Impl rule__Turing__Group__1
            {
            pushFollow(FOLLOW_rule__Turing__Group__0__Impl_in_rule__Turing__Group__08851);
            rule__Turing__Group__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Turing__Group__1_in_rule__Turing__Group__08854);
            rule__Turing__Group__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Turing__Group__0


    // $ANTLR start rule__Turing__Group__0__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4429:1: rule__Turing__Group__0__Impl : ( () ) ;
    public final void rule__Turing__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4433:1: ( ( () ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4434:1: ( () )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4434:1: ( () )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4435:1: ()
            {
             before(grammarAccess.getTuringAccess().getTuringAction_0()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4436:1: ()
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4438:1: 
            {
            }

             after(grammarAccess.getTuringAccess().getTuringAction_0()); 

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Turing__Group__0__Impl


    // $ANTLR start rule__Turing__Group__1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4448:1: rule__Turing__Group__1 : rule__Turing__Group__1__Impl rule__Turing__Group__2 ;
    public final void rule__Turing__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4452:1: ( rule__Turing__Group__1__Impl rule__Turing__Group__2 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4453:2: rule__Turing__Group__1__Impl rule__Turing__Group__2
            {
            pushFollow(FOLLOW_rule__Turing__Group__1__Impl_in_rule__Turing__Group__18912);
            rule__Turing__Group__1__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Turing__Group__2_in_rule__Turing__Group__18915);
            rule__Turing__Group__2();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Turing__Group__1


    // $ANTLR start rule__Turing__Group__1__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4460:1: rule__Turing__Group__1__Impl : ( ( rule__Turing__Group_1__0 )? ) ;
    public final void rule__Turing__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4464:1: ( ( ( rule__Turing__Group_1__0 )? ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4465:1: ( ( rule__Turing__Group_1__0 )? )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4465:1: ( ( rule__Turing__Group_1__0 )? )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4466:1: ( rule__Turing__Group_1__0 )?
            {
             before(grammarAccess.getTuringAccess().getGroup_1()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4467:1: ( rule__Turing__Group_1__0 )?
            int alt32=2;
            int LA32_0 = input.LA(1);

            if ( (LA32_0==RULE_ID) ) {
                alt32=1;
            }
            switch (alt32) {
                case 1 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4467:2: rule__Turing__Group_1__0
                    {
                    pushFollow(FOLLOW_rule__Turing__Group_1__0_in_rule__Turing__Group__1__Impl8942);
                    rule__Turing__Group_1__0();
                    _fsp--;


                    }
                    break;

            }

             after(grammarAccess.getTuringAccess().getGroup_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Turing__Group__1__Impl


    // $ANTLR start rule__Turing__Group__2
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4477:1: rule__Turing__Group__2 : rule__Turing__Group__2__Impl rule__Turing__Group__3 ;
    public final void rule__Turing__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4481:1: ( rule__Turing__Group__2__Impl rule__Turing__Group__3 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4482:2: rule__Turing__Group__2__Impl rule__Turing__Group__3
            {
            pushFollow(FOLLOW_rule__Turing__Group__2__Impl_in_rule__Turing__Group__28973);
            rule__Turing__Group__2__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Turing__Group__3_in_rule__Turing__Group__28976);
            rule__Turing__Group__3();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Turing__Group__2


    // $ANTLR start rule__Turing__Group__2__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4489:1: rule__Turing__Group__2__Impl : ( 'turing' ) ;
    public final void rule__Turing__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4493:1: ( ( 'turing' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4494:1: ( 'turing' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4494:1: ( 'turing' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4495:1: 'turing'
            {
             before(grammarAccess.getTuringAccess().getTuringKeyword_2()); 
            match(input,43,FOLLOW_43_in_rule__Turing__Group__2__Impl9004); 
             after(grammarAccess.getTuringAccess().getTuringKeyword_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Turing__Group__2__Impl


    // $ANTLR start rule__Turing__Group__3
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4508:1: rule__Turing__Group__3 : rule__Turing__Group__3__Impl rule__Turing__Group__4 ;
    public final void rule__Turing__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4512:1: ( rule__Turing__Group__3__Impl rule__Turing__Group__4 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4513:2: rule__Turing__Group__3__Impl rule__Turing__Group__4
            {
            pushFollow(FOLLOW_rule__Turing__Group__3__Impl_in_rule__Turing__Group__39035);
            rule__Turing__Group__3__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Turing__Group__4_in_rule__Turing__Group__39038);
            rule__Turing__Group__4();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Turing__Group__3


    // $ANTLR start rule__Turing__Group__3__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4520:1: rule__Turing__Group__3__Impl : ( '{' ) ;
    public final void rule__Turing__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4524:1: ( ( '{' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4525:1: ( '{' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4525:1: ( '{' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4526:1: '{'
            {
             before(grammarAccess.getTuringAccess().getLeftCurlyBracketKeyword_3()); 
            match(input,22,FOLLOW_22_in_rule__Turing__Group__3__Impl9066); 
             after(grammarAccess.getTuringAccess().getLeftCurlyBracketKeyword_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Turing__Group__3__Impl


    // $ANTLR start rule__Turing__Group__4
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4539:1: rule__Turing__Group__4 : rule__Turing__Group__4__Impl ;
    public final void rule__Turing__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4543:1: ( rule__Turing__Group__4__Impl )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4544:2: rule__Turing__Group__4__Impl
            {
            pushFollow(FOLLOW_rule__Turing__Group__4__Impl_in_rule__Turing__Group__49097);
            rule__Turing__Group__4__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Turing__Group__4


    // $ANTLR start rule__Turing__Group__4__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4550:1: rule__Turing__Group__4__Impl : ( '}' ) ;
    public final void rule__Turing__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4554:1: ( ( '}' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4555:1: ( '}' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4555:1: ( '}' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4556:1: '}'
            {
             before(grammarAccess.getTuringAccess().getRightCurlyBracketKeyword_4()); 
            match(input,23,FOLLOW_23_in_rule__Turing__Group__4__Impl9125); 
             after(grammarAccess.getTuringAccess().getRightCurlyBracketKeyword_4()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Turing__Group__4__Impl


    // $ANTLR start rule__Turing__Group_1__0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4579:1: rule__Turing__Group_1__0 : rule__Turing__Group_1__0__Impl rule__Turing__Group_1__1 ;
    public final void rule__Turing__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4583:1: ( rule__Turing__Group_1__0__Impl rule__Turing__Group_1__1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4584:2: rule__Turing__Group_1__0__Impl rule__Turing__Group_1__1
            {
            pushFollow(FOLLOW_rule__Turing__Group_1__0__Impl_in_rule__Turing__Group_1__09166);
            rule__Turing__Group_1__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Turing__Group_1__1_in_rule__Turing__Group_1__09169);
            rule__Turing__Group_1__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Turing__Group_1__0


    // $ANTLR start rule__Turing__Group_1__0__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4591:1: rule__Turing__Group_1__0__Impl : ( ( rule__Turing__NameAssignment_1_0 ) ) ;
    public final void rule__Turing__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4595:1: ( ( ( rule__Turing__NameAssignment_1_0 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4596:1: ( ( rule__Turing__NameAssignment_1_0 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4596:1: ( ( rule__Turing__NameAssignment_1_0 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4597:1: ( rule__Turing__NameAssignment_1_0 )
            {
             before(grammarAccess.getTuringAccess().getNameAssignment_1_0()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4598:1: ( rule__Turing__NameAssignment_1_0 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4598:2: rule__Turing__NameAssignment_1_0
            {
            pushFollow(FOLLOW_rule__Turing__NameAssignment_1_0_in_rule__Turing__Group_1__0__Impl9196);
            rule__Turing__NameAssignment_1_0();
            _fsp--;


            }

             after(grammarAccess.getTuringAccess().getNameAssignment_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Turing__Group_1__0__Impl


    // $ANTLR start rule__Turing__Group_1__1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4608:1: rule__Turing__Group_1__1 : rule__Turing__Group_1__1__Impl ;
    public final void rule__Turing__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4612:1: ( rule__Turing__Group_1__1__Impl )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4613:2: rule__Turing__Group_1__1__Impl
            {
            pushFollow(FOLLOW_rule__Turing__Group_1__1__Impl_in_rule__Turing__Group_1__19226);
            rule__Turing__Group_1__1__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Turing__Group_1__1


    // $ANTLR start rule__Turing__Group_1__1__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4619:1: rule__Turing__Group_1__1__Impl : ( ':' ) ;
    public final void rule__Turing__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4623:1: ( ( ':' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4624:1: ( ':' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4624:1: ( ':' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4625:1: ':'
            {
             before(grammarAccess.getTuringAccess().getColonKeyword_1_1()); 
            match(input,24,FOLLOW_24_in_rule__Turing__Group_1__1__Impl9254); 
             after(grammarAccess.getTuringAccess().getColonKeyword_1_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Turing__Group_1__1__Impl


    // $ANTLR start rule__Tape__Group__0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4642:1: rule__Tape__Group__0 : rule__Tape__Group__0__Impl rule__Tape__Group__1 ;
    public final void rule__Tape__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4646:1: ( rule__Tape__Group__0__Impl rule__Tape__Group__1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4647:2: rule__Tape__Group__0__Impl rule__Tape__Group__1
            {
            pushFollow(FOLLOW_rule__Tape__Group__0__Impl_in_rule__Tape__Group__09289);
            rule__Tape__Group__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Tape__Group__1_in_rule__Tape__Group__09292);
            rule__Tape__Group__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Tape__Group__0


    // $ANTLR start rule__Tape__Group__0__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4654:1: rule__Tape__Group__0__Impl : ( () ) ;
    public final void rule__Tape__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4658:1: ( ( () ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4659:1: ( () )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4659:1: ( () )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4660:1: ()
            {
             before(grammarAccess.getTapeAccess().getTapeAction_0()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4661:1: ()
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4663:1: 
            {
            }

             after(grammarAccess.getTapeAccess().getTapeAction_0()); 

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Tape__Group__0__Impl


    // $ANTLR start rule__Tape__Group__1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4673:1: rule__Tape__Group__1 : rule__Tape__Group__1__Impl rule__Tape__Group__2 ;
    public final void rule__Tape__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4677:1: ( rule__Tape__Group__1__Impl rule__Tape__Group__2 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4678:2: rule__Tape__Group__1__Impl rule__Tape__Group__2
            {
            pushFollow(FOLLOW_rule__Tape__Group__1__Impl_in_rule__Tape__Group__19350);
            rule__Tape__Group__1__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Tape__Group__2_in_rule__Tape__Group__19353);
            rule__Tape__Group__2();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Tape__Group__1


    // $ANTLR start rule__Tape__Group__1__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4685:1: rule__Tape__Group__1__Impl : ( ( rule__Tape__NameAssignment_1 ) ) ;
    public final void rule__Tape__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4689:1: ( ( ( rule__Tape__NameAssignment_1 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4690:1: ( ( rule__Tape__NameAssignment_1 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4690:1: ( ( rule__Tape__NameAssignment_1 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4691:1: ( rule__Tape__NameAssignment_1 )
            {
             before(grammarAccess.getTapeAccess().getNameAssignment_1()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4692:1: ( rule__Tape__NameAssignment_1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4692:2: rule__Tape__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__Tape__NameAssignment_1_in_rule__Tape__Group__1__Impl9380);
            rule__Tape__NameAssignment_1();
            _fsp--;


            }

             after(grammarAccess.getTapeAccess().getNameAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Tape__Group__1__Impl


    // $ANTLR start rule__Tape__Group__2
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4702:1: rule__Tape__Group__2 : rule__Tape__Group__2__Impl rule__Tape__Group__3 ;
    public final void rule__Tape__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4706:1: ( rule__Tape__Group__2__Impl rule__Tape__Group__3 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4707:2: rule__Tape__Group__2__Impl rule__Tape__Group__3
            {
            pushFollow(FOLLOW_rule__Tape__Group__2__Impl_in_rule__Tape__Group__29410);
            rule__Tape__Group__2__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Tape__Group__3_in_rule__Tape__Group__29413);
            rule__Tape__Group__3();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Tape__Group__2


    // $ANTLR start rule__Tape__Group__2__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4714:1: rule__Tape__Group__2__Impl : ( ':' ) ;
    public final void rule__Tape__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4718:1: ( ( ':' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4719:1: ( ':' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4719:1: ( ':' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4720:1: ':'
            {
             before(grammarAccess.getTapeAccess().getColonKeyword_2()); 
            match(input,24,FOLLOW_24_in_rule__Tape__Group__2__Impl9441); 
             after(grammarAccess.getTapeAccess().getColonKeyword_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Tape__Group__2__Impl


    // $ANTLR start rule__Tape__Group__3
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4733:1: rule__Tape__Group__3 : rule__Tape__Group__3__Impl rule__Tape__Group__4 ;
    public final void rule__Tape__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4737:1: ( rule__Tape__Group__3__Impl rule__Tape__Group__4 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4738:2: rule__Tape__Group__3__Impl rule__Tape__Group__4
            {
            pushFollow(FOLLOW_rule__Tape__Group__3__Impl_in_rule__Tape__Group__39472);
            rule__Tape__Group__3__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Tape__Group__4_in_rule__Tape__Group__39475);
            rule__Tape__Group__4();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Tape__Group__3


    // $ANTLR start rule__Tape__Group__3__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4745:1: rule__Tape__Group__3__Impl : ( 'tape' ) ;
    public final void rule__Tape__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4749:1: ( ( 'tape' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4750:1: ( 'tape' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4750:1: ( 'tape' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4751:1: 'tape'
            {
             before(grammarAccess.getTapeAccess().getTapeKeyword_3()); 
            match(input,20,FOLLOW_20_in_rule__Tape__Group__3__Impl9503); 
             after(grammarAccess.getTapeAccess().getTapeKeyword_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Tape__Group__3__Impl


    // $ANTLR start rule__Tape__Group__4
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4764:1: rule__Tape__Group__4 : rule__Tape__Group__4__Impl ;
    public final void rule__Tape__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4768:1: ( rule__Tape__Group__4__Impl )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4769:2: rule__Tape__Group__4__Impl
            {
            pushFollow(FOLLOW_rule__Tape__Group__4__Impl_in_rule__Tape__Group__49534);
            rule__Tape__Group__4__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Tape__Group__4


    // $ANTLR start rule__Tape__Group__4__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4775:1: rule__Tape__Group__4__Impl : ( ( rule__Tape__Group_4__0 )? ) ;
    public final void rule__Tape__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4779:1: ( ( ( rule__Tape__Group_4__0 )? ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4780:1: ( ( rule__Tape__Group_4__0 )? )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4780:1: ( ( rule__Tape__Group_4__0 )? )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4781:1: ( rule__Tape__Group_4__0 )?
            {
             before(grammarAccess.getTapeAccess().getGroup_4()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4782:1: ( rule__Tape__Group_4__0 )?
            int alt33=2;
            int LA33_0 = input.LA(1);

            if ( (LA33_0==22) ) {
                alt33=1;
            }
            switch (alt33) {
                case 1 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4782:2: rule__Tape__Group_4__0
                    {
                    pushFollow(FOLLOW_rule__Tape__Group_4__0_in_rule__Tape__Group__4__Impl9561);
                    rule__Tape__Group_4__0();
                    _fsp--;


                    }
                    break;

            }

             after(grammarAccess.getTapeAccess().getGroup_4()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Tape__Group__4__Impl


    // $ANTLR start rule__Tape__Group_4__0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4802:1: rule__Tape__Group_4__0 : rule__Tape__Group_4__0__Impl rule__Tape__Group_4__1 ;
    public final void rule__Tape__Group_4__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4806:1: ( rule__Tape__Group_4__0__Impl rule__Tape__Group_4__1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4807:2: rule__Tape__Group_4__0__Impl rule__Tape__Group_4__1
            {
            pushFollow(FOLLOW_rule__Tape__Group_4__0__Impl_in_rule__Tape__Group_4__09602);
            rule__Tape__Group_4__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Tape__Group_4__1_in_rule__Tape__Group_4__09605);
            rule__Tape__Group_4__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Tape__Group_4__0


    // $ANTLR start rule__Tape__Group_4__0__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4814:1: rule__Tape__Group_4__0__Impl : ( '{' ) ;
    public final void rule__Tape__Group_4__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4818:1: ( ( '{' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4819:1: ( '{' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4819:1: ( '{' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4820:1: '{'
            {
             before(grammarAccess.getTapeAccess().getLeftCurlyBracketKeyword_4_0()); 
            match(input,22,FOLLOW_22_in_rule__Tape__Group_4__0__Impl9633); 
             after(grammarAccess.getTapeAccess().getLeftCurlyBracketKeyword_4_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Tape__Group_4__0__Impl


    // $ANTLR start rule__Tape__Group_4__1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4833:1: rule__Tape__Group_4__1 : rule__Tape__Group_4__1__Impl rule__Tape__Group_4__2 ;
    public final void rule__Tape__Group_4__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4837:1: ( rule__Tape__Group_4__1__Impl rule__Tape__Group_4__2 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4838:2: rule__Tape__Group_4__1__Impl rule__Tape__Group_4__2
            {
            pushFollow(FOLLOW_rule__Tape__Group_4__1__Impl_in_rule__Tape__Group_4__19664);
            rule__Tape__Group_4__1__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Tape__Group_4__2_in_rule__Tape__Group_4__19667);
            rule__Tape__Group_4__2();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Tape__Group_4__1


    // $ANTLR start rule__Tape__Group_4__1__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4845:1: rule__Tape__Group_4__1__Impl : ( ( rule__Tape__InputAssignment_4_1 ) ) ;
    public final void rule__Tape__Group_4__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4849:1: ( ( ( rule__Tape__InputAssignment_4_1 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4850:1: ( ( rule__Tape__InputAssignment_4_1 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4850:1: ( ( rule__Tape__InputAssignment_4_1 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4851:1: ( rule__Tape__InputAssignment_4_1 )
            {
             before(grammarAccess.getTapeAccess().getInputAssignment_4_1()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4852:1: ( rule__Tape__InputAssignment_4_1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4852:2: rule__Tape__InputAssignment_4_1
            {
            pushFollow(FOLLOW_rule__Tape__InputAssignment_4_1_in_rule__Tape__Group_4__1__Impl9694);
            rule__Tape__InputAssignment_4_1();
            _fsp--;


            }

             after(grammarAccess.getTapeAccess().getInputAssignment_4_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Tape__Group_4__1__Impl


    // $ANTLR start rule__Tape__Group_4__2
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4862:1: rule__Tape__Group_4__2 : rule__Tape__Group_4__2__Impl rule__Tape__Group_4__3 ;
    public final void rule__Tape__Group_4__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4866:1: ( rule__Tape__Group_4__2__Impl rule__Tape__Group_4__3 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4867:2: rule__Tape__Group_4__2__Impl rule__Tape__Group_4__3
            {
            pushFollow(FOLLOW_rule__Tape__Group_4__2__Impl_in_rule__Tape__Group_4__29724);
            rule__Tape__Group_4__2__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Tape__Group_4__3_in_rule__Tape__Group_4__29727);
            rule__Tape__Group_4__3();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Tape__Group_4__2


    // $ANTLR start rule__Tape__Group_4__2__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4874:1: rule__Tape__Group_4__2__Impl : ( ( rule__Tape__Group_4_2__0 )? ) ;
    public final void rule__Tape__Group_4__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4878:1: ( ( ( rule__Tape__Group_4_2__0 )? ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4879:1: ( ( rule__Tape__Group_4_2__0 )? )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4879:1: ( ( rule__Tape__Group_4_2__0 )? )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4880:1: ( rule__Tape__Group_4_2__0 )?
            {
             before(grammarAccess.getTapeAccess().getGroup_4_2()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4881:1: ( rule__Tape__Group_4_2__0 )?
            int alt34=2;
            int LA34_0 = input.LA(1);

            if ( (LA34_0==22) ) {
                alt34=1;
            }
            switch (alt34) {
                case 1 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4881:2: rule__Tape__Group_4_2__0
                    {
                    pushFollow(FOLLOW_rule__Tape__Group_4_2__0_in_rule__Tape__Group_4__2__Impl9754);
                    rule__Tape__Group_4_2__0();
                    _fsp--;


                    }
                    break;

            }

             after(grammarAccess.getTapeAccess().getGroup_4_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Tape__Group_4__2__Impl


    // $ANTLR start rule__Tape__Group_4__3
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4891:1: rule__Tape__Group_4__3 : rule__Tape__Group_4__3__Impl ;
    public final void rule__Tape__Group_4__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4895:1: ( rule__Tape__Group_4__3__Impl )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4896:2: rule__Tape__Group_4__3__Impl
            {
            pushFollow(FOLLOW_rule__Tape__Group_4__3__Impl_in_rule__Tape__Group_4__39785);
            rule__Tape__Group_4__3__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Tape__Group_4__3


    // $ANTLR start rule__Tape__Group_4__3__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4902:1: rule__Tape__Group_4__3__Impl : ( '}' ) ;
    public final void rule__Tape__Group_4__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4906:1: ( ( '}' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4907:1: ( '}' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4907:1: ( '}' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4908:1: '}'
            {
             before(grammarAccess.getTapeAccess().getRightCurlyBracketKeyword_4_3()); 
            match(input,23,FOLLOW_23_in_rule__Tape__Group_4__3__Impl9813); 
             after(grammarAccess.getTapeAccess().getRightCurlyBracketKeyword_4_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Tape__Group_4__3__Impl


    // $ANTLR start rule__Tape__Group_4_2__0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4929:1: rule__Tape__Group_4_2__0 : rule__Tape__Group_4_2__0__Impl rule__Tape__Group_4_2__1 ;
    public final void rule__Tape__Group_4_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4933:1: ( rule__Tape__Group_4_2__0__Impl rule__Tape__Group_4_2__1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4934:2: rule__Tape__Group_4_2__0__Impl rule__Tape__Group_4_2__1
            {
            pushFollow(FOLLOW_rule__Tape__Group_4_2__0__Impl_in_rule__Tape__Group_4_2__09852);
            rule__Tape__Group_4_2__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Tape__Group_4_2__1_in_rule__Tape__Group_4_2__09855);
            rule__Tape__Group_4_2__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Tape__Group_4_2__0


    // $ANTLR start rule__Tape__Group_4_2__0__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4941:1: rule__Tape__Group_4_2__0__Impl : ( '{' ) ;
    public final void rule__Tape__Group_4_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4945:1: ( ( '{' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4946:1: ( '{' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4946:1: ( '{' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4947:1: '{'
            {
             before(grammarAccess.getTapeAccess().getLeftCurlyBracketKeyword_4_2_0()); 
            match(input,22,FOLLOW_22_in_rule__Tape__Group_4_2__0__Impl9883); 
             after(grammarAccess.getTapeAccess().getLeftCurlyBracketKeyword_4_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Tape__Group_4_2__0__Impl


    // $ANTLR start rule__Tape__Group_4_2__1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4960:1: rule__Tape__Group_4_2__1 : rule__Tape__Group_4_2__1__Impl rule__Tape__Group_4_2__2 ;
    public final void rule__Tape__Group_4_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4964:1: ( rule__Tape__Group_4_2__1__Impl rule__Tape__Group_4_2__2 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4965:2: rule__Tape__Group_4_2__1__Impl rule__Tape__Group_4_2__2
            {
            pushFollow(FOLLOW_rule__Tape__Group_4_2__1__Impl_in_rule__Tape__Group_4_2__19914);
            rule__Tape__Group_4_2__1__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Tape__Group_4_2__2_in_rule__Tape__Group_4_2__19917);
            rule__Tape__Group_4_2__2();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Tape__Group_4_2__1


    // $ANTLR start rule__Tape__Group_4_2__1__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4972:1: rule__Tape__Group_4_2__1__Impl : ( ( rule__Tape__AlphabetAssignment_4_2_1 ) ) ;
    public final void rule__Tape__Group_4_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4976:1: ( ( ( rule__Tape__AlphabetAssignment_4_2_1 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4977:1: ( ( rule__Tape__AlphabetAssignment_4_2_1 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4977:1: ( ( rule__Tape__AlphabetAssignment_4_2_1 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4978:1: ( rule__Tape__AlphabetAssignment_4_2_1 )
            {
             before(grammarAccess.getTapeAccess().getAlphabetAssignment_4_2_1()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4979:1: ( rule__Tape__AlphabetAssignment_4_2_1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4979:2: rule__Tape__AlphabetAssignment_4_2_1
            {
            pushFollow(FOLLOW_rule__Tape__AlphabetAssignment_4_2_1_in_rule__Tape__Group_4_2__1__Impl9944);
            rule__Tape__AlphabetAssignment_4_2_1();
            _fsp--;


            }

             after(grammarAccess.getTapeAccess().getAlphabetAssignment_4_2_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Tape__Group_4_2__1__Impl


    // $ANTLR start rule__Tape__Group_4_2__2
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4989:1: rule__Tape__Group_4_2__2 : rule__Tape__Group_4_2__2__Impl rule__Tape__Group_4_2__3 ;
    public final void rule__Tape__Group_4_2__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4993:1: ( rule__Tape__Group_4_2__2__Impl rule__Tape__Group_4_2__3 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:4994:2: rule__Tape__Group_4_2__2__Impl rule__Tape__Group_4_2__3
            {
            pushFollow(FOLLOW_rule__Tape__Group_4_2__2__Impl_in_rule__Tape__Group_4_2__29974);
            rule__Tape__Group_4_2__2__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Tape__Group_4_2__3_in_rule__Tape__Group_4_2__29977);
            rule__Tape__Group_4_2__3();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Tape__Group_4_2__2


    // $ANTLR start rule__Tape__Group_4_2__2__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5001:1: rule__Tape__Group_4_2__2__Impl : ( ( rule__Tape__Group_4_2_2__0 )* ) ;
    public final void rule__Tape__Group_4_2__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5005:1: ( ( ( rule__Tape__Group_4_2_2__0 )* ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5006:1: ( ( rule__Tape__Group_4_2_2__0 )* )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5006:1: ( ( rule__Tape__Group_4_2_2__0 )* )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5007:1: ( rule__Tape__Group_4_2_2__0 )*
            {
             before(grammarAccess.getTapeAccess().getGroup_4_2_2()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5008:1: ( rule__Tape__Group_4_2_2__0 )*
            loop35:
            do {
                int alt35=2;
                int LA35_0 = input.LA(1);

                if ( (LA35_0==34) ) {
                    alt35=1;
                }


                switch (alt35) {
            	case 1 :
            	    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5008:2: rule__Tape__Group_4_2_2__0
            	    {
            	    pushFollow(FOLLOW_rule__Tape__Group_4_2_2__0_in_rule__Tape__Group_4_2__2__Impl10004);
            	    rule__Tape__Group_4_2_2__0();
            	    _fsp--;


            	    }
            	    break;

            	default :
            	    break loop35;
                }
            } while (true);

             after(grammarAccess.getTapeAccess().getGroup_4_2_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Tape__Group_4_2__2__Impl


    // $ANTLR start rule__Tape__Group_4_2__3
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5018:1: rule__Tape__Group_4_2__3 : rule__Tape__Group_4_2__3__Impl ;
    public final void rule__Tape__Group_4_2__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5022:1: ( rule__Tape__Group_4_2__3__Impl )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5023:2: rule__Tape__Group_4_2__3__Impl
            {
            pushFollow(FOLLOW_rule__Tape__Group_4_2__3__Impl_in_rule__Tape__Group_4_2__310035);
            rule__Tape__Group_4_2__3__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Tape__Group_4_2__3


    // $ANTLR start rule__Tape__Group_4_2__3__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5029:1: rule__Tape__Group_4_2__3__Impl : ( '}' ) ;
    public final void rule__Tape__Group_4_2__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5033:1: ( ( '}' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5034:1: ( '}' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5034:1: ( '}' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5035:1: '}'
            {
             before(grammarAccess.getTapeAccess().getRightCurlyBracketKeyword_4_2_3()); 
            match(input,23,FOLLOW_23_in_rule__Tape__Group_4_2__3__Impl10063); 
             after(grammarAccess.getTapeAccess().getRightCurlyBracketKeyword_4_2_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Tape__Group_4_2__3__Impl


    // $ANTLR start rule__Tape__Group_4_2_2__0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5056:1: rule__Tape__Group_4_2_2__0 : rule__Tape__Group_4_2_2__0__Impl rule__Tape__Group_4_2_2__1 ;
    public final void rule__Tape__Group_4_2_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5060:1: ( rule__Tape__Group_4_2_2__0__Impl rule__Tape__Group_4_2_2__1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5061:2: rule__Tape__Group_4_2_2__0__Impl rule__Tape__Group_4_2_2__1
            {
            pushFollow(FOLLOW_rule__Tape__Group_4_2_2__0__Impl_in_rule__Tape__Group_4_2_2__010102);
            rule__Tape__Group_4_2_2__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Tape__Group_4_2_2__1_in_rule__Tape__Group_4_2_2__010105);
            rule__Tape__Group_4_2_2__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Tape__Group_4_2_2__0


    // $ANTLR start rule__Tape__Group_4_2_2__0__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5068:1: rule__Tape__Group_4_2_2__0__Impl : ( ',' ) ;
    public final void rule__Tape__Group_4_2_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5072:1: ( ( ',' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5073:1: ( ',' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5073:1: ( ',' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5074:1: ','
            {
             before(grammarAccess.getTapeAccess().getCommaKeyword_4_2_2_0()); 
            match(input,34,FOLLOW_34_in_rule__Tape__Group_4_2_2__0__Impl10133); 
             after(grammarAccess.getTapeAccess().getCommaKeyword_4_2_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Tape__Group_4_2_2__0__Impl


    // $ANTLR start rule__Tape__Group_4_2_2__1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5087:1: rule__Tape__Group_4_2_2__1 : rule__Tape__Group_4_2_2__1__Impl ;
    public final void rule__Tape__Group_4_2_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5091:1: ( rule__Tape__Group_4_2_2__1__Impl )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5092:2: rule__Tape__Group_4_2_2__1__Impl
            {
            pushFollow(FOLLOW_rule__Tape__Group_4_2_2__1__Impl_in_rule__Tape__Group_4_2_2__110164);
            rule__Tape__Group_4_2_2__1__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Tape__Group_4_2_2__1


    // $ANTLR start rule__Tape__Group_4_2_2__1__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5098:1: rule__Tape__Group_4_2_2__1__Impl : ( ( rule__Tape__AlphabetAssignment_4_2_2_1 ) ) ;
    public final void rule__Tape__Group_4_2_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5102:1: ( ( ( rule__Tape__AlphabetAssignment_4_2_2_1 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5103:1: ( ( rule__Tape__AlphabetAssignment_4_2_2_1 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5103:1: ( ( rule__Tape__AlphabetAssignment_4_2_2_1 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5104:1: ( rule__Tape__AlphabetAssignment_4_2_2_1 )
            {
             before(grammarAccess.getTapeAccess().getAlphabetAssignment_4_2_2_1()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5105:1: ( rule__Tape__AlphabetAssignment_4_2_2_1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5105:2: rule__Tape__AlphabetAssignment_4_2_2_1
            {
            pushFollow(FOLLOW_rule__Tape__AlphabetAssignment_4_2_2_1_in_rule__Tape__Group_4_2_2__1__Impl10191);
            rule__Tape__AlphabetAssignment_4_2_2_1();
            _fsp--;


            }

             after(grammarAccess.getTapeAccess().getAlphabetAssignment_4_2_2_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Tape__Group_4_2_2__1__Impl


    // $ANTLR start rule__Stack__Group__0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5119:1: rule__Stack__Group__0 : rule__Stack__Group__0__Impl rule__Stack__Group__1 ;
    public final void rule__Stack__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5123:1: ( rule__Stack__Group__0__Impl rule__Stack__Group__1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5124:2: rule__Stack__Group__0__Impl rule__Stack__Group__1
            {
            pushFollow(FOLLOW_rule__Stack__Group__0__Impl_in_rule__Stack__Group__010225);
            rule__Stack__Group__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Stack__Group__1_in_rule__Stack__Group__010228);
            rule__Stack__Group__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Stack__Group__0


    // $ANTLR start rule__Stack__Group__0__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5131:1: rule__Stack__Group__0__Impl : ( () ) ;
    public final void rule__Stack__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5135:1: ( ( () ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5136:1: ( () )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5136:1: ( () )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5137:1: ()
            {
             before(grammarAccess.getStackAccess().getStackAction_0()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5138:1: ()
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5140:1: 
            {
            }

             after(grammarAccess.getStackAccess().getStackAction_0()); 

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Stack__Group__0__Impl


    // $ANTLR start rule__Stack__Group__1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5150:1: rule__Stack__Group__1 : rule__Stack__Group__1__Impl rule__Stack__Group__2 ;
    public final void rule__Stack__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5154:1: ( rule__Stack__Group__1__Impl rule__Stack__Group__2 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5155:2: rule__Stack__Group__1__Impl rule__Stack__Group__2
            {
            pushFollow(FOLLOW_rule__Stack__Group__1__Impl_in_rule__Stack__Group__110286);
            rule__Stack__Group__1__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Stack__Group__2_in_rule__Stack__Group__110289);
            rule__Stack__Group__2();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Stack__Group__1


    // $ANTLR start rule__Stack__Group__1__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5162:1: rule__Stack__Group__1__Impl : ( ( rule__Stack__NameAssignment_1 ) ) ;
    public final void rule__Stack__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5166:1: ( ( ( rule__Stack__NameAssignment_1 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5167:1: ( ( rule__Stack__NameAssignment_1 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5167:1: ( ( rule__Stack__NameAssignment_1 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5168:1: ( rule__Stack__NameAssignment_1 )
            {
             before(grammarAccess.getStackAccess().getNameAssignment_1()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5169:1: ( rule__Stack__NameAssignment_1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5169:2: rule__Stack__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__Stack__NameAssignment_1_in_rule__Stack__Group__1__Impl10316);
            rule__Stack__NameAssignment_1();
            _fsp--;


            }

             after(grammarAccess.getStackAccess().getNameAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Stack__Group__1__Impl


    // $ANTLR start rule__Stack__Group__2
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5179:1: rule__Stack__Group__2 : rule__Stack__Group__2__Impl rule__Stack__Group__3 ;
    public final void rule__Stack__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5183:1: ( rule__Stack__Group__2__Impl rule__Stack__Group__3 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5184:2: rule__Stack__Group__2__Impl rule__Stack__Group__3
            {
            pushFollow(FOLLOW_rule__Stack__Group__2__Impl_in_rule__Stack__Group__210346);
            rule__Stack__Group__2__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Stack__Group__3_in_rule__Stack__Group__210349);
            rule__Stack__Group__3();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Stack__Group__2


    // $ANTLR start rule__Stack__Group__2__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5191:1: rule__Stack__Group__2__Impl : ( ':' ) ;
    public final void rule__Stack__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5195:1: ( ( ':' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5196:1: ( ':' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5196:1: ( ':' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5197:1: ':'
            {
             before(grammarAccess.getStackAccess().getColonKeyword_2()); 
            match(input,24,FOLLOW_24_in_rule__Stack__Group__2__Impl10377); 
             after(grammarAccess.getStackAccess().getColonKeyword_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Stack__Group__2__Impl


    // $ANTLR start rule__Stack__Group__3
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5210:1: rule__Stack__Group__3 : rule__Stack__Group__3__Impl ;
    public final void rule__Stack__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5214:1: ( rule__Stack__Group__3__Impl )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5215:2: rule__Stack__Group__3__Impl
            {
            pushFollow(FOLLOW_rule__Stack__Group__3__Impl_in_rule__Stack__Group__310408);
            rule__Stack__Group__3__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Stack__Group__3


    // $ANTLR start rule__Stack__Group__3__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5221:1: rule__Stack__Group__3__Impl : ( 'stack' ) ;
    public final void rule__Stack__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5225:1: ( ( 'stack' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5226:1: ( 'stack' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5226:1: ( 'stack' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5227:1: 'stack'
            {
             before(grammarAccess.getStackAccess().getStackKeyword_3()); 
            match(input,44,FOLLOW_44_in_rule__Stack__Group__3__Impl10436); 
             after(grammarAccess.getStackAccess().getStackKeyword_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Stack__Group__3__Impl


    // $ANTLR start rule__StatesRegister__Group__0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5248:1: rule__StatesRegister__Group__0 : rule__StatesRegister__Group__0__Impl rule__StatesRegister__Group__1 ;
    public final void rule__StatesRegister__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5252:1: ( rule__StatesRegister__Group__0__Impl rule__StatesRegister__Group__1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5253:2: rule__StatesRegister__Group__0__Impl rule__StatesRegister__Group__1
            {
            pushFollow(FOLLOW_rule__StatesRegister__Group__0__Impl_in_rule__StatesRegister__Group__010475);
            rule__StatesRegister__Group__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__StatesRegister__Group__1_in_rule__StatesRegister__Group__010478);
            rule__StatesRegister__Group__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__StatesRegister__Group__0


    // $ANTLR start rule__StatesRegister__Group__0__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5260:1: rule__StatesRegister__Group__0__Impl : ( () ) ;
    public final void rule__StatesRegister__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5264:1: ( ( () ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5265:1: ( () )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5265:1: ( () )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5266:1: ()
            {
             before(grammarAccess.getStatesRegisterAccess().getStatesRegisterAction_0()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5267:1: ()
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5269:1: 
            {
            }

             after(grammarAccess.getStatesRegisterAccess().getStatesRegisterAction_0()); 

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__StatesRegister__Group__0__Impl


    // $ANTLR start rule__StatesRegister__Group__1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5279:1: rule__StatesRegister__Group__1 : rule__StatesRegister__Group__1__Impl rule__StatesRegister__Group__2 ;
    public final void rule__StatesRegister__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5283:1: ( rule__StatesRegister__Group__1__Impl rule__StatesRegister__Group__2 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5284:2: rule__StatesRegister__Group__1__Impl rule__StatesRegister__Group__2
            {
            pushFollow(FOLLOW_rule__StatesRegister__Group__1__Impl_in_rule__StatesRegister__Group__110536);
            rule__StatesRegister__Group__1__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__StatesRegister__Group__2_in_rule__StatesRegister__Group__110539);
            rule__StatesRegister__Group__2();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__StatesRegister__Group__1


    // $ANTLR start rule__StatesRegister__Group__1__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5291:1: rule__StatesRegister__Group__1__Impl : ( ( rule__StatesRegister__NameAssignment_1 ) ) ;
    public final void rule__StatesRegister__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5295:1: ( ( ( rule__StatesRegister__NameAssignment_1 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5296:1: ( ( rule__StatesRegister__NameAssignment_1 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5296:1: ( ( rule__StatesRegister__NameAssignment_1 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5297:1: ( rule__StatesRegister__NameAssignment_1 )
            {
             before(grammarAccess.getStatesRegisterAccess().getNameAssignment_1()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5298:1: ( rule__StatesRegister__NameAssignment_1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5298:2: rule__StatesRegister__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__StatesRegister__NameAssignment_1_in_rule__StatesRegister__Group__1__Impl10566);
            rule__StatesRegister__NameAssignment_1();
            _fsp--;


            }

             after(grammarAccess.getStatesRegisterAccess().getNameAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__StatesRegister__Group__1__Impl


    // $ANTLR start rule__StatesRegister__Group__2
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5308:1: rule__StatesRegister__Group__2 : rule__StatesRegister__Group__2__Impl rule__StatesRegister__Group__3 ;
    public final void rule__StatesRegister__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5312:1: ( rule__StatesRegister__Group__2__Impl rule__StatesRegister__Group__3 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5313:2: rule__StatesRegister__Group__2__Impl rule__StatesRegister__Group__3
            {
            pushFollow(FOLLOW_rule__StatesRegister__Group__2__Impl_in_rule__StatesRegister__Group__210596);
            rule__StatesRegister__Group__2__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__StatesRegister__Group__3_in_rule__StatesRegister__Group__210599);
            rule__StatesRegister__Group__3();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__StatesRegister__Group__2


    // $ANTLR start rule__StatesRegister__Group__2__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5320:1: rule__StatesRegister__Group__2__Impl : ( ':' ) ;
    public final void rule__StatesRegister__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5324:1: ( ( ':' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5325:1: ( ':' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5325:1: ( ':' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5326:1: ':'
            {
             before(grammarAccess.getStatesRegisterAccess().getColonKeyword_2()); 
            match(input,24,FOLLOW_24_in_rule__StatesRegister__Group__2__Impl10627); 
             after(grammarAccess.getStatesRegisterAccess().getColonKeyword_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__StatesRegister__Group__2__Impl


    // $ANTLR start rule__StatesRegister__Group__3
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5339:1: rule__StatesRegister__Group__3 : rule__StatesRegister__Group__3__Impl rule__StatesRegister__Group__4 ;
    public final void rule__StatesRegister__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5343:1: ( rule__StatesRegister__Group__3__Impl rule__StatesRegister__Group__4 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5344:2: rule__StatesRegister__Group__3__Impl rule__StatesRegister__Group__4
            {
            pushFollow(FOLLOW_rule__StatesRegister__Group__3__Impl_in_rule__StatesRegister__Group__310658);
            rule__StatesRegister__Group__3__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__StatesRegister__Group__4_in_rule__StatesRegister__Group__310661);
            rule__StatesRegister__Group__4();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__StatesRegister__Group__3


    // $ANTLR start rule__StatesRegister__Group__3__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5351:1: rule__StatesRegister__Group__3__Impl : ( 'states' ) ;
    public final void rule__StatesRegister__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5355:1: ( ( 'states' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5356:1: ( 'states' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5356:1: ( 'states' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5357:1: 'states'
            {
             before(grammarAccess.getStatesRegisterAccess().getStatesKeyword_3()); 
            match(input,32,FOLLOW_32_in_rule__StatesRegister__Group__3__Impl10689); 
             after(grammarAccess.getStatesRegisterAccess().getStatesKeyword_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__StatesRegister__Group__3__Impl


    // $ANTLR start rule__StatesRegister__Group__4
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5370:1: rule__StatesRegister__Group__4 : rule__StatesRegister__Group__4__Impl rule__StatesRegister__Group__5 ;
    public final void rule__StatesRegister__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5374:1: ( rule__StatesRegister__Group__4__Impl rule__StatesRegister__Group__5 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5375:2: rule__StatesRegister__Group__4__Impl rule__StatesRegister__Group__5
            {
            pushFollow(FOLLOW_rule__StatesRegister__Group__4__Impl_in_rule__StatesRegister__Group__410720);
            rule__StatesRegister__Group__4__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__StatesRegister__Group__5_in_rule__StatesRegister__Group__410723);
            rule__StatesRegister__Group__5();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__StatesRegister__Group__4


    // $ANTLR start rule__StatesRegister__Group__4__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5382:1: rule__StatesRegister__Group__4__Impl : ( '{' ) ;
    public final void rule__StatesRegister__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5386:1: ( ( '{' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5387:1: ( '{' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5387:1: ( '{' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5388:1: '{'
            {
             before(grammarAccess.getStatesRegisterAccess().getLeftCurlyBracketKeyword_4()); 
            match(input,22,FOLLOW_22_in_rule__StatesRegister__Group__4__Impl10751); 
             after(grammarAccess.getStatesRegisterAccess().getLeftCurlyBracketKeyword_4()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__StatesRegister__Group__4__Impl


    // $ANTLR start rule__StatesRegister__Group__5
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5401:1: rule__StatesRegister__Group__5 : rule__StatesRegister__Group__5__Impl rule__StatesRegister__Group__6 ;
    public final void rule__StatesRegister__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5405:1: ( rule__StatesRegister__Group__5__Impl rule__StatesRegister__Group__6 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5406:2: rule__StatesRegister__Group__5__Impl rule__StatesRegister__Group__6
            {
            pushFollow(FOLLOW_rule__StatesRegister__Group__5__Impl_in_rule__StatesRegister__Group__510782);
            rule__StatesRegister__Group__5__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__StatesRegister__Group__6_in_rule__StatesRegister__Group__510785);
            rule__StatesRegister__Group__6();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__StatesRegister__Group__5


    // $ANTLR start rule__StatesRegister__Group__5__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5413:1: rule__StatesRegister__Group__5__Impl : ( ( ( rule__StatesRegister__StatesAssignment_5 ) ) ( ( rule__StatesRegister__StatesAssignment_5 )* ) ) ;
    public final void rule__StatesRegister__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5417:1: ( ( ( ( rule__StatesRegister__StatesAssignment_5 ) ) ( ( rule__StatesRegister__StatesAssignment_5 )* ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5418:1: ( ( ( rule__StatesRegister__StatesAssignment_5 ) ) ( ( rule__StatesRegister__StatesAssignment_5 )* ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5418:1: ( ( ( rule__StatesRegister__StatesAssignment_5 ) ) ( ( rule__StatesRegister__StatesAssignment_5 )* ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5419:1: ( ( rule__StatesRegister__StatesAssignment_5 ) ) ( ( rule__StatesRegister__StatesAssignment_5 )* )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5419:1: ( ( rule__StatesRegister__StatesAssignment_5 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5420:1: ( rule__StatesRegister__StatesAssignment_5 )
            {
             before(grammarAccess.getStatesRegisterAccess().getStatesAssignment_5()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5421:1: ( rule__StatesRegister__StatesAssignment_5 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5421:2: rule__StatesRegister__StatesAssignment_5
            {
            pushFollow(FOLLOW_rule__StatesRegister__StatesAssignment_5_in_rule__StatesRegister__Group__5__Impl10814);
            rule__StatesRegister__StatesAssignment_5();
            _fsp--;


            }

             after(grammarAccess.getStatesRegisterAccess().getStatesAssignment_5()); 

            }

            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5424:1: ( ( rule__StatesRegister__StatesAssignment_5 )* )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5425:1: ( rule__StatesRegister__StatesAssignment_5 )*
            {
             before(grammarAccess.getStatesRegisterAccess().getStatesAssignment_5()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5426:1: ( rule__StatesRegister__StatesAssignment_5 )*
            loop36:
            do {
                int alt36=2;
                int LA36_0 = input.LA(1);

                if ( (LA36_0==RULE_ID||(LA36_0>=14 && LA36_0<=16)||LA36_0==45) ) {
                    alt36=1;
                }


                switch (alt36) {
            	case 1 :
            	    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5426:2: rule__StatesRegister__StatesAssignment_5
            	    {
            	    pushFollow(FOLLOW_rule__StatesRegister__StatesAssignment_5_in_rule__StatesRegister__Group__5__Impl10826);
            	    rule__StatesRegister__StatesAssignment_5();
            	    _fsp--;


            	    }
            	    break;

            	default :
            	    break loop36;
                }
            } while (true);

             after(grammarAccess.getStatesRegisterAccess().getStatesAssignment_5()); 

            }


            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__StatesRegister__Group__5__Impl


    // $ANTLR start rule__StatesRegister__Group__6
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5437:1: rule__StatesRegister__Group__6 : rule__StatesRegister__Group__6__Impl ;
    public final void rule__StatesRegister__Group__6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5441:1: ( rule__StatesRegister__Group__6__Impl )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5442:2: rule__StatesRegister__Group__6__Impl
            {
            pushFollow(FOLLOW_rule__StatesRegister__Group__6__Impl_in_rule__StatesRegister__Group__610859);
            rule__StatesRegister__Group__6__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__StatesRegister__Group__6


    // $ANTLR start rule__StatesRegister__Group__6__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5448:1: rule__StatesRegister__Group__6__Impl : ( '}' ) ;
    public final void rule__StatesRegister__Group__6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5452:1: ( ( '}' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5453:1: ( '}' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5453:1: ( '}' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5454:1: '}'
            {
             before(grammarAccess.getStatesRegisterAccess().getRightCurlyBracketKeyword_6()); 
            match(input,23,FOLLOW_23_in_rule__StatesRegister__Group__6__Impl10887); 
             after(grammarAccess.getStatesRegisterAccess().getRightCurlyBracketKeyword_6()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__StatesRegister__Group__6__Impl


    // $ANTLR start rule__State__Group_0__0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5481:1: rule__State__Group_0__0 : rule__State__Group_0__0__Impl rule__State__Group_0__1 ;
    public final void rule__State__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5485:1: ( rule__State__Group_0__0__Impl rule__State__Group_0__1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5486:2: rule__State__Group_0__0__Impl rule__State__Group_0__1
            {
            pushFollow(FOLLOW_rule__State__Group_0__0__Impl_in_rule__State__Group_0__010932);
            rule__State__Group_0__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__State__Group_0__1_in_rule__State__Group_0__010935);
            rule__State__Group_0__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__State__Group_0__0


    // $ANTLR start rule__State__Group_0__0__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5493:1: rule__State__Group_0__0__Impl : ( () ) ;
    public final void rule__State__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5497:1: ( ( () ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5498:1: ( () )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5498:1: ( () )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5499:1: ()
            {
             before(grammarAccess.getStateAccess().getStateAction_0_0()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5500:1: ()
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5502:1: 
            {
            }

             after(grammarAccess.getStateAccess().getStateAction_0_0()); 

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__State__Group_0__0__Impl


    // $ANTLR start rule__State__Group_0__1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5512:1: rule__State__Group_0__1 : rule__State__Group_0__1__Impl rule__State__Group_0__2 ;
    public final void rule__State__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5516:1: ( rule__State__Group_0__1__Impl rule__State__Group_0__2 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5517:2: rule__State__Group_0__1__Impl rule__State__Group_0__2
            {
            pushFollow(FOLLOW_rule__State__Group_0__1__Impl_in_rule__State__Group_0__110993);
            rule__State__Group_0__1__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__State__Group_0__2_in_rule__State__Group_0__110996);
            rule__State__Group_0__2();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__State__Group_0__1


    // $ANTLR start rule__State__Group_0__1__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5524:1: rule__State__Group_0__1__Impl : ( ( rule__State__StartAssignment_0_1 )? ) ;
    public final void rule__State__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5528:1: ( ( ( rule__State__StartAssignment_0_1 )? ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5529:1: ( ( rule__State__StartAssignment_0_1 )? )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5529:1: ( ( rule__State__StartAssignment_0_1 )? )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5530:1: ( rule__State__StartAssignment_0_1 )?
            {
             before(grammarAccess.getStateAccess().getStartAssignment_0_1()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5531:1: ( rule__State__StartAssignment_0_1 )?
            int alt37=2;
            int LA37_0 = input.LA(1);

            if ( (LA37_0==45) ) {
                alt37=1;
            }
            switch (alt37) {
                case 1 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5531:2: rule__State__StartAssignment_0_1
                    {
                    pushFollow(FOLLOW_rule__State__StartAssignment_0_1_in_rule__State__Group_0__1__Impl11023);
                    rule__State__StartAssignment_0_1();
                    _fsp--;


                    }
                    break;

            }

             after(grammarAccess.getStateAccess().getStartAssignment_0_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__State__Group_0__1__Impl


    // $ANTLR start rule__State__Group_0__2
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5541:1: rule__State__Group_0__2 : rule__State__Group_0__2__Impl rule__State__Group_0__3 ;
    public final void rule__State__Group_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5545:1: ( rule__State__Group_0__2__Impl rule__State__Group_0__3 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5546:2: rule__State__Group_0__2__Impl rule__State__Group_0__3
            {
            pushFollow(FOLLOW_rule__State__Group_0__2__Impl_in_rule__State__Group_0__211054);
            rule__State__Group_0__2__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__State__Group_0__3_in_rule__State__Group_0__211057);
            rule__State__Group_0__3();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__State__Group_0__2


    // $ANTLR start rule__State__Group_0__2__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5553:1: rule__State__Group_0__2__Impl : ( ( rule__State__TypeAssignment_0_2 )? ) ;
    public final void rule__State__Group_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5557:1: ( ( ( rule__State__TypeAssignment_0_2 )? ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5558:1: ( ( rule__State__TypeAssignment_0_2 )? )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5558:1: ( ( rule__State__TypeAssignment_0_2 )? )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5559:1: ( rule__State__TypeAssignment_0_2 )?
            {
             before(grammarAccess.getStateAccess().getTypeAssignment_0_2()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5560:1: ( rule__State__TypeAssignment_0_2 )?
            int alt38=2;
            int LA38_0 = input.LA(1);

            if ( ((LA38_0>=14 && LA38_0<=16)) ) {
                alt38=1;
            }
            switch (alt38) {
                case 1 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5560:2: rule__State__TypeAssignment_0_2
                    {
                    pushFollow(FOLLOW_rule__State__TypeAssignment_0_2_in_rule__State__Group_0__2__Impl11084);
                    rule__State__TypeAssignment_0_2();
                    _fsp--;


                    }
                    break;

            }

             after(grammarAccess.getStateAccess().getTypeAssignment_0_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__State__Group_0__2__Impl


    // $ANTLR start rule__State__Group_0__3
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5570:1: rule__State__Group_0__3 : rule__State__Group_0__3__Impl ;
    public final void rule__State__Group_0__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5574:1: ( rule__State__Group_0__3__Impl )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5575:2: rule__State__Group_0__3__Impl
            {
            pushFollow(FOLLOW_rule__State__Group_0__3__Impl_in_rule__State__Group_0__311115);
            rule__State__Group_0__3__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__State__Group_0__3


    // $ANTLR start rule__State__Group_0__3__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5581:1: rule__State__Group_0__3__Impl : ( ( rule__State__NameAssignment_0_3 ) ) ;
    public final void rule__State__Group_0__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5585:1: ( ( ( rule__State__NameAssignment_0_3 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5586:1: ( ( rule__State__NameAssignment_0_3 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5586:1: ( ( rule__State__NameAssignment_0_3 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5587:1: ( rule__State__NameAssignment_0_3 )
            {
             before(grammarAccess.getStateAccess().getNameAssignment_0_3()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5588:1: ( rule__State__NameAssignment_0_3 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5588:2: rule__State__NameAssignment_0_3
            {
            pushFollow(FOLLOW_rule__State__NameAssignment_0_3_in_rule__State__Group_0__3__Impl11142);
            rule__State__NameAssignment_0_3();
            _fsp--;


            }

             after(grammarAccess.getStateAccess().getNameAssignment_0_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__State__Group_0__3__Impl


    // $ANTLR start rule__State__Group_1__0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5606:1: rule__State__Group_1__0 : rule__State__Group_1__0__Impl rule__State__Group_1__1 ;
    public final void rule__State__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5610:1: ( rule__State__Group_1__0__Impl rule__State__Group_1__1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5611:2: rule__State__Group_1__0__Impl rule__State__Group_1__1
            {
            pushFollow(FOLLOW_rule__State__Group_1__0__Impl_in_rule__State__Group_1__011180);
            rule__State__Group_1__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__State__Group_1__1_in_rule__State__Group_1__011183);
            rule__State__Group_1__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__State__Group_1__0


    // $ANTLR start rule__State__Group_1__0__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5618:1: rule__State__Group_1__0__Impl : ( () ) ;
    public final void rule__State__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5622:1: ( ( () ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5623:1: ( () )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5623:1: ( () )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5624:1: ()
            {
             before(grammarAccess.getStateAccess().getMultiStateAction_1_0()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5625:1: ()
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5627:1: 
            {
            }

             after(grammarAccess.getStateAccess().getMultiStateAction_1_0()); 

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__State__Group_1__0__Impl


    // $ANTLR start rule__State__Group_1__1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5637:1: rule__State__Group_1__1 : rule__State__Group_1__1__Impl rule__State__Group_1__2 ;
    public final void rule__State__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5641:1: ( rule__State__Group_1__1__Impl rule__State__Group_1__2 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5642:2: rule__State__Group_1__1__Impl rule__State__Group_1__2
            {
            pushFollow(FOLLOW_rule__State__Group_1__1__Impl_in_rule__State__Group_1__111241);
            rule__State__Group_1__1__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__State__Group_1__2_in_rule__State__Group_1__111244);
            rule__State__Group_1__2();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__State__Group_1__1


    // $ANTLR start rule__State__Group_1__1__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5649:1: rule__State__Group_1__1__Impl : ( ( rule__State__StartAssignment_1_1 )? ) ;
    public final void rule__State__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5653:1: ( ( ( rule__State__StartAssignment_1_1 )? ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5654:1: ( ( rule__State__StartAssignment_1_1 )? )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5654:1: ( ( rule__State__StartAssignment_1_1 )? )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5655:1: ( rule__State__StartAssignment_1_1 )?
            {
             before(grammarAccess.getStateAccess().getStartAssignment_1_1()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5656:1: ( rule__State__StartAssignment_1_1 )?
            int alt39=2;
            int LA39_0 = input.LA(1);

            if ( (LA39_0==45) ) {
                alt39=1;
            }
            switch (alt39) {
                case 1 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5656:2: rule__State__StartAssignment_1_1
                    {
                    pushFollow(FOLLOW_rule__State__StartAssignment_1_1_in_rule__State__Group_1__1__Impl11271);
                    rule__State__StartAssignment_1_1();
                    _fsp--;


                    }
                    break;

            }

             after(grammarAccess.getStateAccess().getStartAssignment_1_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__State__Group_1__1__Impl


    // $ANTLR start rule__State__Group_1__2
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5666:1: rule__State__Group_1__2 : rule__State__Group_1__2__Impl rule__State__Group_1__3 ;
    public final void rule__State__Group_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5670:1: ( rule__State__Group_1__2__Impl rule__State__Group_1__3 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5671:2: rule__State__Group_1__2__Impl rule__State__Group_1__3
            {
            pushFollow(FOLLOW_rule__State__Group_1__2__Impl_in_rule__State__Group_1__211302);
            rule__State__Group_1__2__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__State__Group_1__3_in_rule__State__Group_1__211305);
            rule__State__Group_1__3();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__State__Group_1__2


    // $ANTLR start rule__State__Group_1__2__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5678:1: rule__State__Group_1__2__Impl : ( ( rule__State__TypeAssignment_1_2 )? ) ;
    public final void rule__State__Group_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5682:1: ( ( ( rule__State__TypeAssignment_1_2 )? ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5683:1: ( ( rule__State__TypeAssignment_1_2 )? )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5683:1: ( ( rule__State__TypeAssignment_1_2 )? )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5684:1: ( rule__State__TypeAssignment_1_2 )?
            {
             before(grammarAccess.getStateAccess().getTypeAssignment_1_2()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5685:1: ( rule__State__TypeAssignment_1_2 )?
            int alt40=2;
            int LA40_0 = input.LA(1);

            if ( ((LA40_0>=14 && LA40_0<=16)) ) {
                alt40=1;
            }
            switch (alt40) {
                case 1 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5685:2: rule__State__TypeAssignment_1_2
                    {
                    pushFollow(FOLLOW_rule__State__TypeAssignment_1_2_in_rule__State__Group_1__2__Impl11332);
                    rule__State__TypeAssignment_1_2();
                    _fsp--;


                    }
                    break;

            }

             after(grammarAccess.getStateAccess().getTypeAssignment_1_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__State__Group_1__2__Impl


    // $ANTLR start rule__State__Group_1__3
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5695:1: rule__State__Group_1__3 : rule__State__Group_1__3__Impl rule__State__Group_1__4 ;
    public final void rule__State__Group_1__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5699:1: ( rule__State__Group_1__3__Impl rule__State__Group_1__4 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5700:2: rule__State__Group_1__3__Impl rule__State__Group_1__4
            {
            pushFollow(FOLLOW_rule__State__Group_1__3__Impl_in_rule__State__Group_1__311363);
            rule__State__Group_1__3__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__State__Group_1__4_in_rule__State__Group_1__311366);
            rule__State__Group_1__4();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__State__Group_1__3


    // $ANTLR start rule__State__Group_1__3__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5707:1: rule__State__Group_1__3__Impl : ( ( rule__State__NameAssignment_1_3 ) ) ;
    public final void rule__State__Group_1__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5711:1: ( ( ( rule__State__NameAssignment_1_3 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5712:1: ( ( rule__State__NameAssignment_1_3 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5712:1: ( ( rule__State__NameAssignment_1_3 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5713:1: ( rule__State__NameAssignment_1_3 )
            {
             before(grammarAccess.getStateAccess().getNameAssignment_1_3()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5714:1: ( rule__State__NameAssignment_1_3 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5714:2: rule__State__NameAssignment_1_3
            {
            pushFollow(FOLLOW_rule__State__NameAssignment_1_3_in_rule__State__Group_1__3__Impl11393);
            rule__State__NameAssignment_1_3();
            _fsp--;


            }

             after(grammarAccess.getStateAccess().getNameAssignment_1_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__State__Group_1__3__Impl


    // $ANTLR start rule__State__Group_1__4
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5724:1: rule__State__Group_1__4 : rule__State__Group_1__4__Impl rule__State__Group_1__5 ;
    public final void rule__State__Group_1__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5728:1: ( rule__State__Group_1__4__Impl rule__State__Group_1__5 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5729:2: rule__State__Group_1__4__Impl rule__State__Group_1__5
            {
            pushFollow(FOLLOW_rule__State__Group_1__4__Impl_in_rule__State__Group_1__411423);
            rule__State__Group_1__4__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__State__Group_1__5_in_rule__State__Group_1__411426);
            rule__State__Group_1__5();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__State__Group_1__4


    // $ANTLR start rule__State__Group_1__4__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5736:1: rule__State__Group_1__4__Impl : ( '{' ) ;
    public final void rule__State__Group_1__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5740:1: ( ( '{' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5741:1: ( '{' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5741:1: ( '{' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5742:1: '{'
            {
             before(grammarAccess.getStateAccess().getLeftCurlyBracketKeyword_1_4()); 
            match(input,22,FOLLOW_22_in_rule__State__Group_1__4__Impl11454); 
             after(grammarAccess.getStateAccess().getLeftCurlyBracketKeyword_1_4()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__State__Group_1__4__Impl


    // $ANTLR start rule__State__Group_1__5
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5755:1: rule__State__Group_1__5 : rule__State__Group_1__5__Impl rule__State__Group_1__6 ;
    public final void rule__State__Group_1__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5759:1: ( rule__State__Group_1__5__Impl rule__State__Group_1__6 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5760:2: rule__State__Group_1__5__Impl rule__State__Group_1__6
            {
            pushFollow(FOLLOW_rule__State__Group_1__5__Impl_in_rule__State__Group_1__511485);
            rule__State__Group_1__5__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__State__Group_1__6_in_rule__State__Group_1__511488);
            rule__State__Group_1__6();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__State__Group_1__5


    // $ANTLR start rule__State__Group_1__5__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5767:1: rule__State__Group_1__5__Impl : ( ( rule__State__StatesAssignment_1_5 )? ) ;
    public final void rule__State__Group_1__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5771:1: ( ( ( rule__State__StatesAssignment_1_5 )? ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5772:1: ( ( rule__State__StatesAssignment_1_5 )? )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5772:1: ( ( rule__State__StatesAssignment_1_5 )? )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5773:1: ( rule__State__StatesAssignment_1_5 )?
            {
             before(grammarAccess.getStateAccess().getStatesAssignment_1_5()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5774:1: ( rule__State__StatesAssignment_1_5 )?
            int alt41=2;
            int LA41_0 = input.LA(1);

            if ( (LA41_0==RULE_ID) ) {
                alt41=1;
            }
            switch (alt41) {
                case 1 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5774:2: rule__State__StatesAssignment_1_5
                    {
                    pushFollow(FOLLOW_rule__State__StatesAssignment_1_5_in_rule__State__Group_1__5__Impl11515);
                    rule__State__StatesAssignment_1_5();
                    _fsp--;


                    }
                    break;

            }

             after(grammarAccess.getStateAccess().getStatesAssignment_1_5()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__State__Group_1__5__Impl


    // $ANTLR start rule__State__Group_1__6
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5784:1: rule__State__Group_1__6 : rule__State__Group_1__6__Impl rule__State__Group_1__7 ;
    public final void rule__State__Group_1__6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5788:1: ( rule__State__Group_1__6__Impl rule__State__Group_1__7 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5789:2: rule__State__Group_1__6__Impl rule__State__Group_1__7
            {
            pushFollow(FOLLOW_rule__State__Group_1__6__Impl_in_rule__State__Group_1__611546);
            rule__State__Group_1__6__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__State__Group_1__7_in_rule__State__Group_1__611549);
            rule__State__Group_1__7();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__State__Group_1__6


    // $ANTLR start rule__State__Group_1__6__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5796:1: rule__State__Group_1__6__Impl : ( ( rule__State__Group_1_6__0 )* ) ;
    public final void rule__State__Group_1__6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5800:1: ( ( ( rule__State__Group_1_6__0 )* ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5801:1: ( ( rule__State__Group_1_6__0 )* )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5801:1: ( ( rule__State__Group_1_6__0 )* )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5802:1: ( rule__State__Group_1_6__0 )*
            {
             before(grammarAccess.getStateAccess().getGroup_1_6()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5803:1: ( rule__State__Group_1_6__0 )*
            loop42:
            do {
                int alt42=2;
                int LA42_0 = input.LA(1);

                if ( (LA42_0==34) ) {
                    alt42=1;
                }


                switch (alt42) {
            	case 1 :
            	    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5803:2: rule__State__Group_1_6__0
            	    {
            	    pushFollow(FOLLOW_rule__State__Group_1_6__0_in_rule__State__Group_1__6__Impl11576);
            	    rule__State__Group_1_6__0();
            	    _fsp--;


            	    }
            	    break;

            	default :
            	    break loop42;
                }
            } while (true);

             after(grammarAccess.getStateAccess().getGroup_1_6()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__State__Group_1__6__Impl


    // $ANTLR start rule__State__Group_1__7
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5813:1: rule__State__Group_1__7 : rule__State__Group_1__7__Impl ;
    public final void rule__State__Group_1__7() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5817:1: ( rule__State__Group_1__7__Impl )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5818:2: rule__State__Group_1__7__Impl
            {
            pushFollow(FOLLOW_rule__State__Group_1__7__Impl_in_rule__State__Group_1__711607);
            rule__State__Group_1__7__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__State__Group_1__7


    // $ANTLR start rule__State__Group_1__7__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5824:1: rule__State__Group_1__7__Impl : ( '}' ) ;
    public final void rule__State__Group_1__7__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5828:1: ( ( '}' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5829:1: ( '}' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5829:1: ( '}' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5830:1: '}'
            {
             before(grammarAccess.getStateAccess().getRightCurlyBracketKeyword_1_7()); 
            match(input,23,FOLLOW_23_in_rule__State__Group_1__7__Impl11635); 
             after(grammarAccess.getStateAccess().getRightCurlyBracketKeyword_1_7()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__State__Group_1__7__Impl


    // $ANTLR start rule__State__Group_1_6__0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5859:1: rule__State__Group_1_6__0 : rule__State__Group_1_6__0__Impl rule__State__Group_1_6__1 ;
    public final void rule__State__Group_1_6__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5863:1: ( rule__State__Group_1_6__0__Impl rule__State__Group_1_6__1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5864:2: rule__State__Group_1_6__0__Impl rule__State__Group_1_6__1
            {
            pushFollow(FOLLOW_rule__State__Group_1_6__0__Impl_in_rule__State__Group_1_6__011682);
            rule__State__Group_1_6__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__State__Group_1_6__1_in_rule__State__Group_1_6__011685);
            rule__State__Group_1_6__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__State__Group_1_6__0


    // $ANTLR start rule__State__Group_1_6__0__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5871:1: rule__State__Group_1_6__0__Impl : ( ',' ) ;
    public final void rule__State__Group_1_6__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5875:1: ( ( ',' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5876:1: ( ',' )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5876:1: ( ',' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5877:1: ','
            {
             before(grammarAccess.getStateAccess().getCommaKeyword_1_6_0()); 
            match(input,34,FOLLOW_34_in_rule__State__Group_1_6__0__Impl11713); 
             after(grammarAccess.getStateAccess().getCommaKeyword_1_6_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__State__Group_1_6__0__Impl


    // $ANTLR start rule__State__Group_1_6__1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5890:1: rule__State__Group_1_6__1 : rule__State__Group_1_6__1__Impl ;
    public final void rule__State__Group_1_6__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5894:1: ( rule__State__Group_1_6__1__Impl )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5895:2: rule__State__Group_1_6__1__Impl
            {
            pushFollow(FOLLOW_rule__State__Group_1_6__1__Impl_in_rule__State__Group_1_6__111744);
            rule__State__Group_1_6__1__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__State__Group_1_6__1


    // $ANTLR start rule__State__Group_1_6__1__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5901:1: rule__State__Group_1_6__1__Impl : ( ( rule__State__StatesAssignment_1_6_1 ) ) ;
    public final void rule__State__Group_1_6__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5905:1: ( ( ( rule__State__StatesAssignment_1_6_1 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5906:1: ( ( rule__State__StatesAssignment_1_6_1 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5906:1: ( ( rule__State__StatesAssignment_1_6_1 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5907:1: ( rule__State__StatesAssignment_1_6_1 )
            {
             before(grammarAccess.getStateAccess().getStatesAssignment_1_6_1()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5908:1: ( rule__State__StatesAssignment_1_6_1 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5908:2: rule__State__StatesAssignment_1_6_1
            {
            pushFollow(FOLLOW_rule__State__StatesAssignment_1_6_1_in_rule__State__Group_1_6__1__Impl11771);
            rule__State__StatesAssignment_1_6_1();
            _fsp--;


            }

             after(grammarAccess.getStateAccess().getStatesAssignment_1_6_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__State__Group_1_6__1__Impl


    // $ANTLR start rule__Transitions__UnorderedGroup_3
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5923:1: rule__Transitions__UnorderedGroup_3 : ( rule__Transitions__UnorderedGroup_3__0 )? ;
    public final void rule__Transitions__UnorderedGroup_3() throws RecognitionException {

            	int stackSize = keepStackSize();
        		getUnorderedGroupHelper().enter(grammarAccess.getTransitionsAccess().getUnorderedGroup_3());
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5928:1: ( ( rule__Transitions__UnorderedGroup_3__0 )? )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5929:2: ( rule__Transitions__UnorderedGroup_3__0 )?
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5929:2: ( rule__Transitions__UnorderedGroup_3__0 )?
            int alt43=2;
            int LA43_0 = input.LA(1);

            if ( LA43_0 ==20 && getUnorderedGroupHelper().canSelect(grammarAccess.getTransitionsAccess().getUnorderedGroup_3(), 0) ) {
                alt43=1;
            }
            else if ( LA43_0 ==32 && getUnorderedGroupHelper().canSelect(grammarAccess.getTransitionsAccess().getUnorderedGroup_3(), 1) ) {
                alt43=1;
            }
            switch (alt43) {
                case 1 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5929:2: rule__Transitions__UnorderedGroup_3__0
                    {
                    pushFollow(FOLLOW_rule__Transitions__UnorderedGroup_3__0_in_rule__Transitions__UnorderedGroup_311806);
                    rule__Transitions__UnorderedGroup_3__0();
                    _fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	getUnorderedGroupHelper().leave(grammarAccess.getTransitionsAccess().getUnorderedGroup_3());
            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transitions__UnorderedGroup_3


    // $ANTLR start rule__Transitions__UnorderedGroup_3__Impl
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5939:1: rule__Transitions__UnorderedGroup_3__Impl : ( ({...}? => ( ( ( rule__Transitions__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Transitions__Group_3_1__0 ) ) ) ) ) ;
    public final void rule__Transitions__UnorderedGroup_3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        		boolean selected = false;
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5944:1: ( ( ({...}? => ( ( ( rule__Transitions__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Transitions__Group_3_1__0 ) ) ) ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5945:3: ( ({...}? => ( ( ( rule__Transitions__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Transitions__Group_3_1__0 ) ) ) ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5945:3: ( ({...}? => ( ( ( rule__Transitions__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Transitions__Group_3_1__0 ) ) ) ) )
            int alt44=2;
            int LA44_0 = input.LA(1);

            if ( LA44_0 ==20 && getUnorderedGroupHelper().canSelect(grammarAccess.getTransitionsAccess().getUnorderedGroup_3(), 0) ) {
                alt44=1;
            }
            else if ( LA44_0 ==32 && getUnorderedGroupHelper().canSelect(grammarAccess.getTransitionsAccess().getUnorderedGroup_3(), 1) ) {
                alt44=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("5945:3: ( ({...}? => ( ( ( rule__Transitions__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Transitions__Group_3_1__0 ) ) ) ) )", 44, 0, input);

                throw nvae;
            }
            switch (alt44) {
                case 1 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5947:4: ({...}? => ( ( ( rule__Transitions__Group_3_0__0 ) ) ) )
                    {
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5947:4: ({...}? => ( ( ( rule__Transitions__Group_3_0__0 ) ) ) )
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5948:5: {...}? => ( ( ( rule__Transitions__Group_3_0__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTransitionsAccess().getUnorderedGroup_3(), 0) ) {
                        throw new FailedPredicateException(input, "rule__Transitions__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getTransitionsAccess().getUnorderedGroup_3(), 0)");
                    }
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5948:108: ( ( ( rule__Transitions__Group_3_0__0 ) ) )
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5949:6: ( ( rule__Transitions__Group_3_0__0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getTransitionsAccess().getUnorderedGroup_3(), 0);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5955:6: ( ( rule__Transitions__Group_3_0__0 ) )
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5957:7: ( rule__Transitions__Group_3_0__0 )
                    {
                     before(grammarAccess.getTransitionsAccess().getGroup_3_0()); 
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5958:7: ( rule__Transitions__Group_3_0__0 )
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5958:8: rule__Transitions__Group_3_0__0
                    {
                    pushFollow(FOLLOW_rule__Transitions__Group_3_0__0_in_rule__Transitions__UnorderedGroup_3__Impl11893);
                    rule__Transitions__Group_3_0__0();
                    _fsp--;


                    }

                     after(grammarAccess.getTransitionsAccess().getGroup_3_0()); 

                    }


                    }


                    }


                    }
                    break;
                case 2 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5964:4: ({...}? => ( ( ( rule__Transitions__Group_3_1__0 ) ) ) )
                    {
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5964:4: ({...}? => ( ( ( rule__Transitions__Group_3_1__0 ) ) ) )
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5965:5: {...}? => ( ( ( rule__Transitions__Group_3_1__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTransitionsAccess().getUnorderedGroup_3(), 1) ) {
                        throw new FailedPredicateException(input, "rule__Transitions__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getTransitionsAccess().getUnorderedGroup_3(), 1)");
                    }
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5965:108: ( ( ( rule__Transitions__Group_3_1__0 ) ) )
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5966:6: ( ( rule__Transitions__Group_3_1__0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getTransitionsAccess().getUnorderedGroup_3(), 1);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5972:6: ( ( rule__Transitions__Group_3_1__0 ) )
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5974:7: ( rule__Transitions__Group_3_1__0 )
                    {
                     before(grammarAccess.getTransitionsAccess().getGroup_3_1()); 
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5975:7: ( rule__Transitions__Group_3_1__0 )
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5975:8: rule__Transitions__Group_3_1__0
                    {
                    pushFollow(FOLLOW_rule__Transitions__Group_3_1__0_in_rule__Transitions__UnorderedGroup_3__Impl11984);
                    rule__Transitions__Group_3_1__0();
                    _fsp--;


                    }

                     after(grammarAccess.getTransitionsAccess().getGroup_3_1()); 

                    }


                    }


                    }


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	if (selected)
            		getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTransitionsAccess().getUnorderedGroup_3());
            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transitions__UnorderedGroup_3__Impl


    // $ANTLR start rule__Transitions__UnorderedGroup_3__0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5990:1: rule__Transitions__UnorderedGroup_3__0 : rule__Transitions__UnorderedGroup_3__Impl ( rule__Transitions__UnorderedGroup_3__1 )? ;
    public final void rule__Transitions__UnorderedGroup_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5994:1: ( rule__Transitions__UnorderedGroup_3__Impl ( rule__Transitions__UnorderedGroup_3__1 )? )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5995:2: rule__Transitions__UnorderedGroup_3__Impl ( rule__Transitions__UnorderedGroup_3__1 )?
            {
            pushFollow(FOLLOW_rule__Transitions__UnorderedGroup_3__Impl_in_rule__Transitions__UnorderedGroup_3__012043);
            rule__Transitions__UnorderedGroup_3__Impl();
            _fsp--;

            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5996:2: ( rule__Transitions__UnorderedGroup_3__1 )?
            int alt45=2;
            int LA45_0 = input.LA(1);

            if ( LA45_0 ==20 && getUnorderedGroupHelper().canSelect(grammarAccess.getTransitionsAccess().getUnorderedGroup_3(), 0) ) {
                alt45=1;
            }
            else if ( LA45_0 ==32 && getUnorderedGroupHelper().canSelect(grammarAccess.getTransitionsAccess().getUnorderedGroup_3(), 1) ) {
                alt45=1;
            }
            switch (alt45) {
                case 1 :
                    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:5996:2: rule__Transitions__UnorderedGroup_3__1
                    {
                    pushFollow(FOLLOW_rule__Transitions__UnorderedGroup_3__1_in_rule__Transitions__UnorderedGroup_3__012046);
                    rule__Transitions__UnorderedGroup_3__1();
                    _fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transitions__UnorderedGroup_3__0


    // $ANTLR start rule__Transitions__UnorderedGroup_3__1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6003:1: rule__Transitions__UnorderedGroup_3__1 : rule__Transitions__UnorderedGroup_3__Impl ;
    public final void rule__Transitions__UnorderedGroup_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6007:1: ( rule__Transitions__UnorderedGroup_3__Impl )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6008:2: rule__Transitions__UnorderedGroup_3__Impl
            {
            pushFollow(FOLLOW_rule__Transitions__UnorderedGroup_3__Impl_in_rule__Transitions__UnorderedGroup_3__112071);
            rule__Transitions__UnorderedGroup_3__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transitions__UnorderedGroup_3__1


    // $ANTLR start rule__Cosima__MachineAssignment_0_1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6019:1: rule__Cosima__MachineAssignment_0_1 : ( ruleMachine ) ;
    public final void rule__Cosima__MachineAssignment_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6023:1: ( ( ruleMachine ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6024:1: ( ruleMachine )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6024:1: ( ruleMachine )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6025:1: ruleMachine
            {
             before(grammarAccess.getCosimaAccess().getMachineMachineParserRuleCall_0_1_0()); 
            pushFollow(FOLLOW_ruleMachine_in_rule__Cosima__MachineAssignment_0_112103);
            ruleMachine();
            _fsp--;

             after(grammarAccess.getCosimaAccess().getMachineMachineParserRuleCall_0_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Cosima__MachineAssignment_0_1


    // $ANTLR start rule__Cosima__ProgramsAssignment_2
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6034:1: rule__Cosima__ProgramsAssignment_2 : ( ruleProgram ) ;
    public final void rule__Cosima__ProgramsAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6038:1: ( ( ruleProgram ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6039:1: ( ruleProgram )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6039:1: ( ruleProgram )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6040:1: ruleProgram
            {
             before(grammarAccess.getCosimaAccess().getProgramsProgramParserRuleCall_2_0()); 
            pushFollow(FOLLOW_ruleProgram_in_rule__Cosima__ProgramsAssignment_212134);
            ruleProgram();
            _fsp--;

             after(grammarAccess.getCosimaAccess().getProgramsProgramParserRuleCall_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Cosima__ProgramsAssignment_2


    // $ANTLR start rule__Machine__ComponentsAssignment
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6049:1: rule__Machine__ComponentsAssignment : ( ruleComponent ) ;
    public final void rule__Machine__ComponentsAssignment() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6053:1: ( ( ruleComponent ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6054:1: ( ruleComponent )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6054:1: ( ruleComponent )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6055:1: ruleComponent
            {
             before(grammarAccess.getMachineAccess().getComponentsComponentParserRuleCall_0()); 
            pushFollow(FOLLOW_ruleComponent_in_rule__Machine__ComponentsAssignment12165);
            ruleComponent();
            _fsp--;

             after(grammarAccess.getMachineAccess().getComponentsComponentParserRuleCall_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Machine__ComponentsAssignment


    // $ANTLR start rule__Regex__NameAssignment_1_0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6064:1: rule__Regex__NameAssignment_1_0 : ( RULE_ID ) ;
    public final void rule__Regex__NameAssignment_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6068:1: ( ( RULE_ID ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6069:1: ( RULE_ID )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6069:1: ( RULE_ID )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6070:1: RULE_ID
            {
             before(grammarAccess.getRegexAccess().getNameIDTerminalRuleCall_1_0_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Regex__NameAssignment_1_012196); 
             after(grammarAccess.getRegexAccess().getNameIDTerminalRuleCall_1_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Regex__NameAssignment_1_0


    // $ANTLR start rule__Regex__TapeAssignment_5
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6079:1: rule__Regex__TapeAssignment_5 : ( ( RULE_ID ) ) ;
    public final void rule__Regex__TapeAssignment_5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6083:1: ( ( ( RULE_ID ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6084:1: ( ( RULE_ID ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6084:1: ( ( RULE_ID ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6085:1: ( RULE_ID )
            {
             before(grammarAccess.getRegexAccess().getTapeTapeCrossReference_5_0()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6086:1: ( RULE_ID )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6087:1: RULE_ID
            {
             before(grammarAccess.getRegexAccess().getTapeTapeIDTerminalRuleCall_5_0_1()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Regex__TapeAssignment_512231); 
             after(grammarAccess.getRegexAccess().getTapeTapeIDTerminalRuleCall_5_0_1()); 

            }

             after(grammarAccess.getRegexAccess().getTapeTapeCrossReference_5_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Regex__TapeAssignment_5


    // $ANTLR start rule__Regex__ExpressionAssignment_7
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6098:1: rule__Regex__ExpressionAssignment_7 : ( ruleExpression ) ;
    public final void rule__Regex__ExpressionAssignment_7() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6102:1: ( ( ruleExpression ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6103:1: ( ruleExpression )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6103:1: ( ruleExpression )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6104:1: ruleExpression
            {
             before(grammarAccess.getRegexAccess().getExpressionExpressionParserRuleCall_7_0()); 
            pushFollow(FOLLOW_ruleExpression_in_rule__Regex__ExpressionAssignment_712266);
            ruleExpression();
            _fsp--;

             after(grammarAccess.getRegexAccess().getExpressionExpressionParserRuleCall_7_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Regex__ExpressionAssignment_7


    // $ANTLR start rule__ANDExpression__RightAssignment_1_2
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6113:1: rule__ANDExpression__RightAssignment_1_2 : ( ruleORExpression ) ;
    public final void rule__ANDExpression__RightAssignment_1_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6117:1: ( ( ruleORExpression ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6118:1: ( ruleORExpression )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6118:1: ( ruleORExpression )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6119:1: ruleORExpression
            {
             before(grammarAccess.getANDExpressionAccess().getRightORExpressionParserRuleCall_1_2_0()); 
            pushFollow(FOLLOW_ruleORExpression_in_rule__ANDExpression__RightAssignment_1_212297);
            ruleORExpression();
            _fsp--;

             after(grammarAccess.getANDExpressionAccess().getRightORExpressionParserRuleCall_1_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__ANDExpression__RightAssignment_1_2


    // $ANTLR start rule__ORExpression__RightAssignment_1_2
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6128:1: rule__ORExpression__RightAssignment_1_2 : ( ruleKleeneExpression ) ;
    public final void rule__ORExpression__RightAssignment_1_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6132:1: ( ( ruleKleeneExpression ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6133:1: ( ruleKleeneExpression )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6133:1: ( ruleKleeneExpression )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6134:1: ruleKleeneExpression
            {
             before(grammarAccess.getORExpressionAccess().getRightKleeneExpressionParserRuleCall_1_2_0()); 
            pushFollow(FOLLOW_ruleKleeneExpression_in_rule__ORExpression__RightAssignment_1_212328);
            ruleKleeneExpression();
            _fsp--;

             after(grammarAccess.getORExpressionAccess().getRightKleeneExpressionParserRuleCall_1_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__ORExpression__RightAssignment_1_2


    // $ANTLR start rule__StringExpression__InputAssignment
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6143:1: rule__StringExpression__InputAssignment : ( RULE_STRING ) ;
    public final void rule__StringExpression__InputAssignment() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6147:1: ( ( RULE_STRING ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6148:1: ( RULE_STRING )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6148:1: ( RULE_STRING )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6149:1: RULE_STRING
            {
             before(grammarAccess.getStringExpressionAccess().getInputSTRINGTerminalRuleCall_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__StringExpression__InputAssignment12359); 
             after(grammarAccess.getStringExpressionAccess().getInputSTRINGTerminalRuleCall_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__StringExpression__InputAssignment


    // $ANTLR start rule__Grammar__NameAssignment_1_0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6158:1: rule__Grammar__NameAssignment_1_0 : ( RULE_ID ) ;
    public final void rule__Grammar__NameAssignment_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6162:1: ( ( RULE_ID ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6163:1: ( RULE_ID )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6163:1: ( RULE_ID )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6164:1: RULE_ID
            {
             before(grammarAccess.getGrammarAccess().getNameIDTerminalRuleCall_1_0_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Grammar__NameAssignment_1_012390); 
             after(grammarAccess.getGrammarAccess().getNameIDTerminalRuleCall_1_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Grammar__NameAssignment_1_0


    // $ANTLR start rule__Transitions__NameAssignment_1_0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6173:1: rule__Transitions__NameAssignment_1_0 : ( RULE_ID ) ;
    public final void rule__Transitions__NameAssignment_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6177:1: ( ( RULE_ID ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6178:1: ( RULE_ID )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6178:1: ( RULE_ID )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6179:1: RULE_ID
            {
             before(grammarAccess.getTransitionsAccess().getNameIDTerminalRuleCall_1_0_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Transitions__NameAssignment_1_012421); 
             after(grammarAccess.getTransitionsAccess().getNameIDTerminalRuleCall_1_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transitions__NameAssignment_1_0


    // $ANTLR start rule__Transitions__TapeAssignment_3_0_2
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6188:1: rule__Transitions__TapeAssignment_3_0_2 : ( ( RULE_ID ) ) ;
    public final void rule__Transitions__TapeAssignment_3_0_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6192:1: ( ( ( RULE_ID ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6193:1: ( ( RULE_ID ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6193:1: ( ( RULE_ID ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6194:1: ( RULE_ID )
            {
             before(grammarAccess.getTransitionsAccess().getTapeTapeCrossReference_3_0_2_0()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6195:1: ( RULE_ID )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6196:1: RULE_ID
            {
             before(grammarAccess.getTransitionsAccess().getTapeTapeIDTerminalRuleCall_3_0_2_0_1()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Transitions__TapeAssignment_3_0_212456); 
             after(grammarAccess.getTransitionsAccess().getTapeTapeIDTerminalRuleCall_3_0_2_0_1()); 

            }

             after(grammarAccess.getTransitionsAccess().getTapeTapeCrossReference_3_0_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transitions__TapeAssignment_3_0_2


    // $ANTLR start rule__Transitions__StatesAssignment_3_1_2
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6207:1: rule__Transitions__StatesAssignment_3_1_2 : ( ( RULE_ID ) ) ;
    public final void rule__Transitions__StatesAssignment_3_1_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6211:1: ( ( ( RULE_ID ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6212:1: ( ( RULE_ID ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6212:1: ( ( RULE_ID ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6213:1: ( RULE_ID )
            {
             before(grammarAccess.getTransitionsAccess().getStatesStatesRegisterCrossReference_3_1_2_0()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6214:1: ( RULE_ID )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6215:1: RULE_ID
            {
             before(grammarAccess.getTransitionsAccess().getStatesStatesRegisterIDTerminalRuleCall_3_1_2_0_1()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Transitions__StatesAssignment_3_1_212495); 
             after(grammarAccess.getTransitionsAccess().getStatesStatesRegisterIDTerminalRuleCall_3_1_2_0_1()); 

            }

             after(grammarAccess.getTransitionsAccess().getStatesStatesRegisterCrossReference_3_1_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transitions__StatesAssignment_3_1_2


    // $ANTLR start rule__Transitions__TransitionsAssignment_5
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6226:1: rule__Transitions__TransitionsAssignment_5 : ( ruleTransition ) ;
    public final void rule__Transitions__TransitionsAssignment_5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6230:1: ( ( ruleTransition ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6231:1: ( ruleTransition )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6231:1: ( ruleTransition )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6232:1: ruleTransition
            {
             before(grammarAccess.getTransitionsAccess().getTransitionsTransitionParserRuleCall_5_0()); 
            pushFollow(FOLLOW_ruleTransition_in_rule__Transitions__TransitionsAssignment_512530);
            ruleTransition();
            _fsp--;

             after(grammarAccess.getTransitionsAccess().getTransitionsTransitionParserRuleCall_5_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transitions__TransitionsAssignment_5


    // $ANTLR start rule__Transition__StartAssignment_0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6241:1: rule__Transition__StartAssignment_0 : ( ( RULE_ID ) ) ;
    public final void rule__Transition__StartAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6245:1: ( ( ( RULE_ID ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6246:1: ( ( RULE_ID ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6246:1: ( ( RULE_ID ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6247:1: ( RULE_ID )
            {
             before(grammarAccess.getTransitionAccess().getStartStateCrossReference_0_0()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6248:1: ( RULE_ID )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6249:1: RULE_ID
            {
             before(grammarAccess.getTransitionAccess().getStartStateIDTerminalRuleCall_0_0_1()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Transition__StartAssignment_012565); 
             after(grammarAccess.getTransitionAccess().getStartStateIDTerminalRuleCall_0_0_1()); 

            }

             after(grammarAccess.getTransitionAccess().getStartStateCrossReference_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transition__StartAssignment_0


    // $ANTLR start rule__Transition__EndAssignment_2
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6260:1: rule__Transition__EndAssignment_2 : ( ( RULE_ID ) ) ;
    public final void rule__Transition__EndAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6264:1: ( ( ( RULE_ID ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6265:1: ( ( RULE_ID ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6265:1: ( ( RULE_ID ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6266:1: ( RULE_ID )
            {
             before(grammarAccess.getTransitionAccess().getEndStateCrossReference_2_0()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6267:1: ( RULE_ID )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6268:1: RULE_ID
            {
             before(grammarAccess.getTransitionAccess().getEndStateIDTerminalRuleCall_2_0_1()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Transition__EndAssignment_212604); 
             after(grammarAccess.getTransitionAccess().getEndStateIDTerminalRuleCall_2_0_1()); 

            }

             after(grammarAccess.getTransitionAccess().getEndStateCrossReference_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transition__EndAssignment_2


    // $ANTLR start rule__Transition__StartInstructionsAssignment_4
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6279:1: rule__Transition__StartInstructionsAssignment_4 : ( ruleInstruction ) ;
    public final void rule__Transition__StartInstructionsAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6283:1: ( ( ruleInstruction ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6284:1: ( ruleInstruction )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6284:1: ( ruleInstruction )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6285:1: ruleInstruction
            {
             before(grammarAccess.getTransitionAccess().getStartInstructionsInstructionParserRuleCall_4_0()); 
            pushFollow(FOLLOW_ruleInstruction_in_rule__Transition__StartInstructionsAssignment_412639);
            ruleInstruction();
            _fsp--;

             after(grammarAccess.getTransitionAccess().getStartInstructionsInstructionParserRuleCall_4_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transition__StartInstructionsAssignment_4


    // $ANTLR start rule__Transition__StartInstructionsAssignment_5_1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6294:1: rule__Transition__StartInstructionsAssignment_5_1 : ( ruleInstruction ) ;
    public final void rule__Transition__StartInstructionsAssignment_5_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6298:1: ( ( ruleInstruction ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6299:1: ( ruleInstruction )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6299:1: ( ruleInstruction )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6300:1: ruleInstruction
            {
             before(grammarAccess.getTransitionAccess().getStartInstructionsInstructionParserRuleCall_5_1_0()); 
            pushFollow(FOLLOW_ruleInstruction_in_rule__Transition__StartInstructionsAssignment_5_112670);
            ruleInstruction();
            _fsp--;

             after(grammarAccess.getTransitionAccess().getStartInstructionsInstructionParserRuleCall_5_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transition__StartInstructionsAssignment_5_1


    // $ANTLR start rule__Transition__EndInstructionsAssignment_6_1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6309:1: rule__Transition__EndInstructionsAssignment_6_1 : ( ruleInstruction ) ;
    public final void rule__Transition__EndInstructionsAssignment_6_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6313:1: ( ( ruleInstruction ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6314:1: ( ruleInstruction )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6314:1: ( ruleInstruction )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6315:1: ruleInstruction
            {
             before(grammarAccess.getTransitionAccess().getEndInstructionsInstructionParserRuleCall_6_1_0()); 
            pushFollow(FOLLOW_ruleInstruction_in_rule__Transition__EndInstructionsAssignment_6_112701);
            ruleInstruction();
            _fsp--;

             after(grammarAccess.getTransitionAccess().getEndInstructionsInstructionParserRuleCall_6_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transition__EndInstructionsAssignment_6_1


    // $ANTLR start rule__Transition__EndInstructionsAssignment_6_2_1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6324:1: rule__Transition__EndInstructionsAssignment_6_2_1 : ( ruleInstruction ) ;
    public final void rule__Transition__EndInstructionsAssignment_6_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6328:1: ( ( ruleInstruction ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6329:1: ( ruleInstruction )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6329:1: ( ruleInstruction )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6330:1: ruleInstruction
            {
             before(grammarAccess.getTransitionAccess().getEndInstructionsInstructionParserRuleCall_6_2_1_0()); 
            pushFollow(FOLLOW_ruleInstruction_in_rule__Transition__EndInstructionsAssignment_6_2_112732);
            ruleInstruction();
            _fsp--;

             after(grammarAccess.getTransitionAccess().getEndInstructionsInstructionParserRuleCall_6_2_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Transition__EndInstructionsAssignment_6_2_1


    // $ANTLR start rule__ReadFromTape__SymbolAssignment_1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6339:1: rule__ReadFromTape__SymbolAssignment_1 : ( ( rule__ReadFromTape__SymbolAlternatives_1_0 ) ) ;
    public final void rule__ReadFromTape__SymbolAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6343:1: ( ( ( rule__ReadFromTape__SymbolAlternatives_1_0 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6344:1: ( ( rule__ReadFromTape__SymbolAlternatives_1_0 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6344:1: ( ( rule__ReadFromTape__SymbolAlternatives_1_0 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6345:1: ( rule__ReadFromTape__SymbolAlternatives_1_0 )
            {
             before(grammarAccess.getReadFromTapeAccess().getSymbolAlternatives_1_0()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6346:1: ( rule__ReadFromTape__SymbolAlternatives_1_0 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6346:2: rule__ReadFromTape__SymbolAlternatives_1_0
            {
            pushFollow(FOLLOW_rule__ReadFromTape__SymbolAlternatives_1_0_in_rule__ReadFromTape__SymbolAssignment_112763);
            rule__ReadFromTape__SymbolAlternatives_1_0();
            _fsp--;


            }

             after(grammarAccess.getReadFromTapeAccess().getSymbolAlternatives_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__ReadFromTape__SymbolAssignment_1


    // $ANTLR start rule__ReadFromTape__TapeAssignment_2_1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6355:1: rule__ReadFromTape__TapeAssignment_2_1 : ( ( RULE_ID ) ) ;
    public final void rule__ReadFromTape__TapeAssignment_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6359:1: ( ( ( RULE_ID ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6360:1: ( ( RULE_ID ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6360:1: ( ( RULE_ID ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6361:1: ( RULE_ID )
            {
             before(grammarAccess.getReadFromTapeAccess().getTapeTapeCrossReference_2_1_0()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6362:1: ( RULE_ID )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6363:1: RULE_ID
            {
             before(grammarAccess.getReadFromTapeAccess().getTapeTapeIDTerminalRuleCall_2_1_0_1()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__ReadFromTape__TapeAssignment_2_112800); 
             after(grammarAccess.getReadFromTapeAccess().getTapeTapeIDTerminalRuleCall_2_1_0_1()); 

            }

             after(grammarAccess.getReadFromTapeAccess().getTapeTapeCrossReference_2_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__ReadFromTape__TapeAssignment_2_1


    // $ANTLR start rule__WriteToTape__SymbolAssignment_1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6374:1: rule__WriteToTape__SymbolAssignment_1 : ( ( rule__WriteToTape__SymbolAlternatives_1_0 ) ) ;
    public final void rule__WriteToTape__SymbolAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6378:1: ( ( ( rule__WriteToTape__SymbolAlternatives_1_0 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6379:1: ( ( rule__WriteToTape__SymbolAlternatives_1_0 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6379:1: ( ( rule__WriteToTape__SymbolAlternatives_1_0 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6380:1: ( rule__WriteToTape__SymbolAlternatives_1_0 )
            {
             before(grammarAccess.getWriteToTapeAccess().getSymbolAlternatives_1_0()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6381:1: ( rule__WriteToTape__SymbolAlternatives_1_0 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6381:2: rule__WriteToTape__SymbolAlternatives_1_0
            {
            pushFollow(FOLLOW_rule__WriteToTape__SymbolAlternatives_1_0_in_rule__WriteToTape__SymbolAssignment_112835);
            rule__WriteToTape__SymbolAlternatives_1_0();
            _fsp--;


            }

             after(grammarAccess.getWriteToTapeAccess().getSymbolAlternatives_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__WriteToTape__SymbolAssignment_1


    // $ANTLR start rule__WriteToTape__TapeAssignment_2_1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6390:1: rule__WriteToTape__TapeAssignment_2_1 : ( ( RULE_ID ) ) ;
    public final void rule__WriteToTape__TapeAssignment_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6394:1: ( ( ( RULE_ID ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6395:1: ( ( RULE_ID ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6395:1: ( ( RULE_ID ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6396:1: ( RULE_ID )
            {
             before(grammarAccess.getWriteToTapeAccess().getTapeTapeCrossReference_2_1_0()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6397:1: ( RULE_ID )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6398:1: RULE_ID
            {
             before(grammarAccess.getWriteToTapeAccess().getTapeTapeIDTerminalRuleCall_2_1_0_1()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__WriteToTape__TapeAssignment_2_112872); 
             after(grammarAccess.getWriteToTapeAccess().getTapeTapeIDTerminalRuleCall_2_1_0_1()); 

            }

             after(grammarAccess.getWriteToTapeAccess().getTapeTapeCrossReference_2_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__WriteToTape__TapeAssignment_2_1


    // $ANTLR start rule__MoveTapeLeft__TapeAssignment_2_1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6409:1: rule__MoveTapeLeft__TapeAssignment_2_1 : ( ( RULE_ID ) ) ;
    public final void rule__MoveTapeLeft__TapeAssignment_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6413:1: ( ( ( RULE_ID ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6414:1: ( ( RULE_ID ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6414:1: ( ( RULE_ID ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6415:1: ( RULE_ID )
            {
             before(grammarAccess.getMoveTapeLeftAccess().getTapeTapeCrossReference_2_1_0()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6416:1: ( RULE_ID )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6417:1: RULE_ID
            {
             before(grammarAccess.getMoveTapeLeftAccess().getTapeTapeIDTerminalRuleCall_2_1_0_1()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__MoveTapeLeft__TapeAssignment_2_112911); 
             after(grammarAccess.getMoveTapeLeftAccess().getTapeTapeIDTerminalRuleCall_2_1_0_1()); 

            }

             after(grammarAccess.getMoveTapeLeftAccess().getTapeTapeCrossReference_2_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MoveTapeLeft__TapeAssignment_2_1


    // $ANTLR start rule__MoveTapeRight__TapeAssignment_2_1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6428:1: rule__MoveTapeRight__TapeAssignment_2_1 : ( ( RULE_ID ) ) ;
    public final void rule__MoveTapeRight__TapeAssignment_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6432:1: ( ( ( RULE_ID ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6433:1: ( ( RULE_ID ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6433:1: ( ( RULE_ID ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6434:1: ( RULE_ID )
            {
             before(grammarAccess.getMoveTapeRightAccess().getTapeTapeCrossReference_2_1_0()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6435:1: ( RULE_ID )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6436:1: RULE_ID
            {
             before(grammarAccess.getMoveTapeRightAccess().getTapeTapeIDTerminalRuleCall_2_1_0_1()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__MoveTapeRight__TapeAssignment_2_112950); 
             after(grammarAccess.getMoveTapeRightAccess().getTapeTapeIDTerminalRuleCall_2_1_0_1()); 

            }

             after(grammarAccess.getMoveTapeRightAccess().getTapeTapeCrossReference_2_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MoveTapeRight__TapeAssignment_2_1


    // $ANTLR start rule__Loop__NameAssignment_1_0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6447:1: rule__Loop__NameAssignment_1_0 : ( RULE_ID ) ;
    public final void rule__Loop__NameAssignment_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6451:1: ( ( RULE_ID ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6452:1: ( RULE_ID )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6452:1: ( RULE_ID )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6453:1: RULE_ID
            {
             before(grammarAccess.getLoopAccess().getNameIDTerminalRuleCall_1_0_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Loop__NameAssignment_1_012985); 
             after(grammarAccess.getLoopAccess().getNameIDTerminalRuleCall_1_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Loop__NameAssignment_1_0


    // $ANTLR start rule__While__NameAssignment_1_0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6462:1: rule__While__NameAssignment_1_0 : ( RULE_ID ) ;
    public final void rule__While__NameAssignment_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6466:1: ( ( RULE_ID ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6467:1: ( RULE_ID )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6467:1: ( RULE_ID )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6468:1: RULE_ID
            {
             before(grammarAccess.getWhileAccess().getNameIDTerminalRuleCall_1_0_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__While__NameAssignment_1_013016); 
             after(grammarAccess.getWhileAccess().getNameIDTerminalRuleCall_1_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__While__NameAssignment_1_0


    // $ANTLR start rule__Turing__NameAssignment_1_0
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6477:1: rule__Turing__NameAssignment_1_0 : ( RULE_ID ) ;
    public final void rule__Turing__NameAssignment_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6481:1: ( ( RULE_ID ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6482:1: ( RULE_ID )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6482:1: ( RULE_ID )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6483:1: RULE_ID
            {
             before(grammarAccess.getTuringAccess().getNameIDTerminalRuleCall_1_0_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Turing__NameAssignment_1_013047); 
             after(grammarAccess.getTuringAccess().getNameIDTerminalRuleCall_1_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Turing__NameAssignment_1_0


    // $ANTLR start rule__Tape__NameAssignment_1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6492:1: rule__Tape__NameAssignment_1 : ( RULE_ID ) ;
    public final void rule__Tape__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6496:1: ( ( RULE_ID ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6497:1: ( RULE_ID )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6497:1: ( RULE_ID )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6498:1: RULE_ID
            {
             before(grammarAccess.getTapeAccess().getNameIDTerminalRuleCall_1_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Tape__NameAssignment_113078); 
             after(grammarAccess.getTapeAccess().getNameIDTerminalRuleCall_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Tape__NameAssignment_1


    // $ANTLR start rule__Tape__InputAssignment_4_1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6507:1: rule__Tape__InputAssignment_4_1 : ( ( rule__Tape__InputAlternatives_4_1_0 ) ) ;
    public final void rule__Tape__InputAssignment_4_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6511:1: ( ( ( rule__Tape__InputAlternatives_4_1_0 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6512:1: ( ( rule__Tape__InputAlternatives_4_1_0 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6512:1: ( ( rule__Tape__InputAlternatives_4_1_0 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6513:1: ( rule__Tape__InputAlternatives_4_1_0 )
            {
             before(grammarAccess.getTapeAccess().getInputAlternatives_4_1_0()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6514:1: ( rule__Tape__InputAlternatives_4_1_0 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6514:2: rule__Tape__InputAlternatives_4_1_0
            {
            pushFollow(FOLLOW_rule__Tape__InputAlternatives_4_1_0_in_rule__Tape__InputAssignment_4_113109);
            rule__Tape__InputAlternatives_4_1_0();
            _fsp--;


            }

             after(grammarAccess.getTapeAccess().getInputAlternatives_4_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Tape__InputAssignment_4_1


    // $ANTLR start rule__Tape__AlphabetAssignment_4_2_1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6523:1: rule__Tape__AlphabetAssignment_4_2_1 : ( ( rule__Tape__AlphabetAlternatives_4_2_1_0 ) ) ;
    public final void rule__Tape__AlphabetAssignment_4_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6527:1: ( ( ( rule__Tape__AlphabetAlternatives_4_2_1_0 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6528:1: ( ( rule__Tape__AlphabetAlternatives_4_2_1_0 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6528:1: ( ( rule__Tape__AlphabetAlternatives_4_2_1_0 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6529:1: ( rule__Tape__AlphabetAlternatives_4_2_1_0 )
            {
             before(grammarAccess.getTapeAccess().getAlphabetAlternatives_4_2_1_0()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6530:1: ( rule__Tape__AlphabetAlternatives_4_2_1_0 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6530:2: rule__Tape__AlphabetAlternatives_4_2_1_0
            {
            pushFollow(FOLLOW_rule__Tape__AlphabetAlternatives_4_2_1_0_in_rule__Tape__AlphabetAssignment_4_2_113142);
            rule__Tape__AlphabetAlternatives_4_2_1_0();
            _fsp--;


            }

             after(grammarAccess.getTapeAccess().getAlphabetAlternatives_4_2_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Tape__AlphabetAssignment_4_2_1


    // $ANTLR start rule__Tape__AlphabetAssignment_4_2_2_1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6539:1: rule__Tape__AlphabetAssignment_4_2_2_1 : ( ( rule__Tape__AlphabetAlternatives_4_2_2_1_0 ) ) ;
    public final void rule__Tape__AlphabetAssignment_4_2_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6543:1: ( ( ( rule__Tape__AlphabetAlternatives_4_2_2_1_0 ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6544:1: ( ( rule__Tape__AlphabetAlternatives_4_2_2_1_0 ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6544:1: ( ( rule__Tape__AlphabetAlternatives_4_2_2_1_0 ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6545:1: ( rule__Tape__AlphabetAlternatives_4_2_2_1_0 )
            {
             before(grammarAccess.getTapeAccess().getAlphabetAlternatives_4_2_2_1_0()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6546:1: ( rule__Tape__AlphabetAlternatives_4_2_2_1_0 )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6546:2: rule__Tape__AlphabetAlternatives_4_2_2_1_0
            {
            pushFollow(FOLLOW_rule__Tape__AlphabetAlternatives_4_2_2_1_0_in_rule__Tape__AlphabetAssignment_4_2_2_113175);
            rule__Tape__AlphabetAlternatives_4_2_2_1_0();
            _fsp--;


            }

             after(grammarAccess.getTapeAccess().getAlphabetAlternatives_4_2_2_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Tape__AlphabetAssignment_4_2_2_1


    // $ANTLR start rule__Stack__NameAssignment_1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6555:1: rule__Stack__NameAssignment_1 : ( RULE_ID ) ;
    public final void rule__Stack__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6559:1: ( ( RULE_ID ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6560:1: ( RULE_ID )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6560:1: ( RULE_ID )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6561:1: RULE_ID
            {
             before(grammarAccess.getStackAccess().getNameIDTerminalRuleCall_1_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Stack__NameAssignment_113208); 
             after(grammarAccess.getStackAccess().getNameIDTerminalRuleCall_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Stack__NameAssignment_1


    // $ANTLR start rule__StatesRegister__NameAssignment_1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6570:1: rule__StatesRegister__NameAssignment_1 : ( RULE_ID ) ;
    public final void rule__StatesRegister__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6574:1: ( ( RULE_ID ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6575:1: ( RULE_ID )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6575:1: ( RULE_ID )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6576:1: RULE_ID
            {
             before(grammarAccess.getStatesRegisterAccess().getNameIDTerminalRuleCall_1_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__StatesRegister__NameAssignment_113239); 
             after(grammarAccess.getStatesRegisterAccess().getNameIDTerminalRuleCall_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__StatesRegister__NameAssignment_1


    // $ANTLR start rule__StatesRegister__StatesAssignment_5
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6585:1: rule__StatesRegister__StatesAssignment_5 : ( ruleState ) ;
    public final void rule__StatesRegister__StatesAssignment_5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6589:1: ( ( ruleState ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6590:1: ( ruleState )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6590:1: ( ruleState )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6591:1: ruleState
            {
             before(grammarAccess.getStatesRegisterAccess().getStatesStateParserRuleCall_5_0()); 
            pushFollow(FOLLOW_ruleState_in_rule__StatesRegister__StatesAssignment_513270);
            ruleState();
            _fsp--;

             after(grammarAccess.getStatesRegisterAccess().getStatesStateParserRuleCall_5_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__StatesRegister__StatesAssignment_5


    // $ANTLR start rule__State__StartAssignment_0_1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6600:1: rule__State__StartAssignment_0_1 : ( ( 'start' ) ) ;
    public final void rule__State__StartAssignment_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6604:1: ( ( ( 'start' ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6605:1: ( ( 'start' ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6605:1: ( ( 'start' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6606:1: ( 'start' )
            {
             before(grammarAccess.getStateAccess().getStartStartKeyword_0_1_0()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6607:1: ( 'start' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6608:1: 'start'
            {
             before(grammarAccess.getStateAccess().getStartStartKeyword_0_1_0()); 
            match(input,45,FOLLOW_45_in_rule__State__StartAssignment_0_113306); 
             after(grammarAccess.getStateAccess().getStartStartKeyword_0_1_0()); 

            }

             after(grammarAccess.getStateAccess().getStartStartKeyword_0_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__State__StartAssignment_0_1


    // $ANTLR start rule__State__TypeAssignment_0_2
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6623:1: rule__State__TypeAssignment_0_2 : ( ruleStateType ) ;
    public final void rule__State__TypeAssignment_0_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6627:1: ( ( ruleStateType ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6628:1: ( ruleStateType )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6628:1: ( ruleStateType )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6629:1: ruleStateType
            {
             before(grammarAccess.getStateAccess().getTypeStateTypeEnumRuleCall_0_2_0()); 
            pushFollow(FOLLOW_ruleStateType_in_rule__State__TypeAssignment_0_213345);
            ruleStateType();
            _fsp--;

             after(grammarAccess.getStateAccess().getTypeStateTypeEnumRuleCall_0_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__State__TypeAssignment_0_2


    // $ANTLR start rule__State__NameAssignment_0_3
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6638:1: rule__State__NameAssignment_0_3 : ( RULE_ID ) ;
    public final void rule__State__NameAssignment_0_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6642:1: ( ( RULE_ID ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6643:1: ( RULE_ID )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6643:1: ( RULE_ID )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6644:1: RULE_ID
            {
             before(grammarAccess.getStateAccess().getNameIDTerminalRuleCall_0_3_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__State__NameAssignment_0_313376); 
             after(grammarAccess.getStateAccess().getNameIDTerminalRuleCall_0_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__State__NameAssignment_0_3


    // $ANTLR start rule__State__StartAssignment_1_1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6653:1: rule__State__StartAssignment_1_1 : ( ( 'start' ) ) ;
    public final void rule__State__StartAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6657:1: ( ( ( 'start' ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6658:1: ( ( 'start' ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6658:1: ( ( 'start' ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6659:1: ( 'start' )
            {
             before(grammarAccess.getStateAccess().getStartStartKeyword_1_1_0()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6660:1: ( 'start' )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6661:1: 'start'
            {
             before(grammarAccess.getStateAccess().getStartStartKeyword_1_1_0()); 
            match(input,45,FOLLOW_45_in_rule__State__StartAssignment_1_113412); 
             after(grammarAccess.getStateAccess().getStartStartKeyword_1_1_0()); 

            }

             after(grammarAccess.getStateAccess().getStartStartKeyword_1_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__State__StartAssignment_1_1


    // $ANTLR start rule__State__TypeAssignment_1_2
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6676:1: rule__State__TypeAssignment_1_2 : ( ruleStateType ) ;
    public final void rule__State__TypeAssignment_1_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6680:1: ( ( ruleStateType ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6681:1: ( ruleStateType )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6681:1: ( ruleStateType )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6682:1: ruleStateType
            {
             before(grammarAccess.getStateAccess().getTypeStateTypeEnumRuleCall_1_2_0()); 
            pushFollow(FOLLOW_ruleStateType_in_rule__State__TypeAssignment_1_213451);
            ruleStateType();
            _fsp--;

             after(grammarAccess.getStateAccess().getTypeStateTypeEnumRuleCall_1_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__State__TypeAssignment_1_2


    // $ANTLR start rule__State__NameAssignment_1_3
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6691:1: rule__State__NameAssignment_1_3 : ( RULE_ID ) ;
    public final void rule__State__NameAssignment_1_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6695:1: ( ( RULE_ID ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6696:1: ( RULE_ID )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6696:1: ( RULE_ID )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6697:1: RULE_ID
            {
             before(grammarAccess.getStateAccess().getNameIDTerminalRuleCall_1_3_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__State__NameAssignment_1_313482); 
             after(grammarAccess.getStateAccess().getNameIDTerminalRuleCall_1_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__State__NameAssignment_1_3


    // $ANTLR start rule__State__StatesAssignment_1_5
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6706:1: rule__State__StatesAssignment_1_5 : ( ( RULE_ID ) ) ;
    public final void rule__State__StatesAssignment_1_5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6710:1: ( ( ( RULE_ID ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6711:1: ( ( RULE_ID ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6711:1: ( ( RULE_ID ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6712:1: ( RULE_ID )
            {
             before(grammarAccess.getStateAccess().getStatesStateCrossReference_1_5_0()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6713:1: ( RULE_ID )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6714:1: RULE_ID
            {
             before(grammarAccess.getStateAccess().getStatesStateIDTerminalRuleCall_1_5_0_1()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__State__StatesAssignment_1_513517); 
             after(grammarAccess.getStateAccess().getStatesStateIDTerminalRuleCall_1_5_0_1()); 

            }

             after(grammarAccess.getStateAccess().getStatesStateCrossReference_1_5_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__State__StatesAssignment_1_5


    // $ANTLR start rule__State__StatesAssignment_1_6_1
    // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6725:1: rule__State__StatesAssignment_1_6_1 : ( ( RULE_ID ) ) ;
    public final void rule__State__StatesAssignment_1_6_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6729:1: ( ( ( RULE_ID ) ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6730:1: ( ( RULE_ID ) )
            {
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6730:1: ( ( RULE_ID ) )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6731:1: ( RULE_ID )
            {
             before(grammarAccess.getStateAccess().getStatesStateCrossReference_1_6_1_0()); 
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6732:1: ( RULE_ID )
            // ../de.jadehs.cosima.xtext.ui/src-gen/de/jadehs/cosima/ui/contentassist/antlr/internal/InternalCosimaLang.g:6733:1: RULE_ID
            {
             before(grammarAccess.getStateAccess().getStatesStateIDTerminalRuleCall_1_6_1_0_1()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__State__StatesAssignment_1_6_113556); 
             after(grammarAccess.getStateAccess().getStatesStateIDTerminalRuleCall_1_6_1_0_1()); 

            }

             after(grammarAccess.getStateAccess().getStatesStateCrossReference_1_6_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__State__StatesAssignment_1_6_1


 

    public static final BitSet FOLLOW_ruleCosima_in_entryRuleCosima61 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleCosima68 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Cosima__Group__0_in_ruleCosima94 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMachine_in_entryRuleMachine121 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleMachine128 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Machine__ComponentsAssignment_in_ruleMachine156 = new BitSet(new long[]{0x0000000000000102L});
    public static final BitSet FOLLOW_rule__Machine__ComponentsAssignment_in_ruleMachine168 = new BitSet(new long[]{0x0000000000000102L});
    public static final BitSet FOLLOW_ruleProgram_in_entryRuleProgram198 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleProgram205 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Program__Alternatives_in_ruleProgram231 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleRegex_in_entryRuleRegex258 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleRegex265 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Regex__Group__0_in_ruleRegex291 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleExpression_in_entryRuleExpression318 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleExpression325 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleANDExpression_in_ruleExpression351 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleANDExpression_in_entryRuleANDExpression377 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleANDExpression384 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ANDExpression__Group__0_in_ruleANDExpression410 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleORExpression_in_entryRuleORExpression437 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleORExpression444 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ORExpression__Group__0_in_ruleORExpression470 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleKleeneExpression_in_entryRuleKleeneExpression497 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleKleeneExpression504 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__KleeneExpression__Group__0_in_ruleKleeneExpression530 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePrimaryExpression_in_entryRulePrimaryExpression557 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRulePrimaryExpression564 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PrimaryExpression__Alternatives_in_rulePrimaryExpression590 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleStringExpression_in_entryRuleStringExpression617 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleStringExpression624 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__StringExpression__InputAssignment_in_ruleStringExpression650 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleGrammar_in_entryRuleGrammar677 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleGrammar684 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Grammar__Group__0_in_ruleGrammar710 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTransitions_in_entryRuleTransitions737 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTransitions744 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transitions__Group__0_in_ruleTransitions770 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTransition_in_entryRuleTransition797 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTransition804 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transition__Group__0_in_ruleTransition830 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleInstruction_in_entryRuleInstruction857 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleInstruction864 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTapeInstruction_in_ruleInstruction890 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTapeInstruction_in_entryRuleTapeInstruction916 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTapeInstruction923 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TapeInstruction__Alternatives_in_ruleTapeInstruction949 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleReadFromTape_in_entryRuleReadFromTape976 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleReadFromTape983 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ReadFromTape__Group__0_in_ruleReadFromTape1009 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleWriteToTape_in_entryRuleWriteToTape1036 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleWriteToTape1043 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__WriteToTape__Group__0_in_ruleWriteToTape1069 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMoveTapeLeft_in_entryRuleMoveTapeLeft1096 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleMoveTapeLeft1103 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MoveTapeLeft__Group__0_in_ruleMoveTapeLeft1129 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMoveTapeRight_in_entryRuleMoveTapeRight1156 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleMoveTapeRight1163 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MoveTapeRight__Group__0_in_ruleMoveTapeRight1189 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleLoop_in_entryRuleLoop1216 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleLoop1223 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Loop__Group__0_in_ruleLoop1249 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleWhile_in_entryRuleWhile1276 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleWhile1283 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__While__Group__0_in_ruleWhile1309 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTuring_in_entryRuleTuring1336 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTuring1343 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Turing__Group__0_in_ruleTuring1369 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleComponent_in_entryRuleComponent1396 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleComponent1403 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Component__Alternatives_in_ruleComponent1429 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTape_in_entryRuleTape1456 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTape1463 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Tape__Group__0_in_ruleTape1489 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleStack_in_entryRuleStack1516 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleStack1523 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Stack__Group__0_in_ruleStack1549 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleStatesRegister_in_entryRuleStatesRegister1576 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleStatesRegister1583 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__StatesRegister__Group__0_in_ruleStatesRegister1609 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleState_in_entryRuleState1636 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleState1643 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__State__Alternatives_in_ruleState1669 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__StateType__Alternatives_in_ruleStateType1706 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTransitions_in_rule__Program__Alternatives1741 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleRegex_in_rule__Program__Alternatives1758 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleGrammar_in_rule__Program__Alternatives1775 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleLoop_in_rule__Program__Alternatives1792 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleWhile_in_rule__Program__Alternatives1809 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTuring_in_rule__Program__Alternatives1826 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PrimaryExpression__Group_0__0_in_rule__PrimaryExpression__Alternatives1858 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleStringExpression_in_rule__PrimaryExpression__Alternatives1876 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleReadFromTape_in_rule__TapeInstruction__Alternatives1908 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleWriteToTape_in_rule__TapeInstruction__Alternatives1925 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMoveTapeLeft_in_rule__TapeInstruction__Alternatives1942 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMoveTapeRight_in_rule__TapeInstruction__Alternatives1959 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_CHAR_in_rule__ReadFromTape__SymbolAlternatives_1_01991 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_EPS_in_rule__ReadFromTape__SymbolAlternatives_1_02008 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_CHAR_in_rule__WriteToTape__SymbolAlternatives_1_02040 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_EPS_in_rule__WriteToTape__SymbolAlternatives_1_02057 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTape_in_rule__Component__Alternatives2089 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleStack_in_rule__Component__Alternatives2106 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleStatesRegister_in_rule__Component__Alternatives2123 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Tape__InputAlternatives_4_1_02155 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ML_STRING_in_rule__Tape__InputAlternatives_4_1_02172 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_CHAR_in_rule__Tape__AlphabetAlternatives_4_2_1_02204 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_EPS_in_rule__Tape__AlphabetAlternatives_4_2_1_02221 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_CHAR_in_rule__Tape__AlphabetAlternatives_4_2_2_1_02253 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_EPS_in_rule__Tape__AlphabetAlternatives_4_2_2_1_02270 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__State__Group_0__0_in_rule__State__Alternatives2302 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__State__Group_1__0_in_rule__State__Alternatives2320 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_14_in_rule__StateType__Alternatives2354 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_15_in_rule__StateType__Alternatives2375 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_16_in_rule__StateType__Alternatives2396 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Cosima__Group__0__Impl_in_rule__Cosima__Group__02429 = new BitSet(new long[]{0x0000000000020000L});
    public static final BitSet FOLLOW_rule__Cosima__Group__1_in_rule__Cosima__Group__02432 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Cosima__Group_0__0_in_rule__Cosima__Group__0__Impl2459 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Cosima__Group__1__Impl_in_rule__Cosima__Group__12490 = new BitSet(new long[]{0x00000E00C0080100L});
    public static final BitSet FOLLOW_rule__Cosima__Group__2_in_rule__Cosima__Group__12493 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_17_in_rule__Cosima__Group__1__Impl2521 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Cosima__Group__2__Impl_in_rule__Cosima__Group__22552 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Cosima__ProgramsAssignment_2_in_rule__Cosima__Group__2__Impl2581 = new BitSet(new long[]{0x00000E00C0080102L});
    public static final BitSet FOLLOW_rule__Cosima__ProgramsAssignment_2_in_rule__Cosima__Group__2__Impl2593 = new BitSet(new long[]{0x00000E00C0080102L});
    public static final BitSet FOLLOW_rule__Cosima__Group_0__0__Impl_in_rule__Cosima__Group_0__02632 = new BitSet(new long[]{0x0000000000000100L});
    public static final BitSet FOLLOW_rule__Cosima__Group_0__1_in_rule__Cosima__Group_0__02635 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_18_in_rule__Cosima__Group_0__0__Impl2663 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Cosima__Group_0__1__Impl_in_rule__Cosima__Group_0__12694 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Cosima__MachineAssignment_0_1_in_rule__Cosima__Group_0__1__Impl2721 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Regex__Group__0__Impl_in_rule__Regex__Group__02755 = new BitSet(new long[]{0x0000000000080100L});
    public static final BitSet FOLLOW_rule__Regex__Group__1_in_rule__Regex__Group__02758 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Regex__Group__1__Impl_in_rule__Regex__Group__12816 = new BitSet(new long[]{0x0000000000080000L});
    public static final BitSet FOLLOW_rule__Regex__Group__2_in_rule__Regex__Group__12819 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Regex__Group_1__0_in_rule__Regex__Group__1__Impl2846 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Regex__Group__2__Impl_in_rule__Regex__Group__22877 = new BitSet(new long[]{0x0000000000100000L});
    public static final BitSet FOLLOW_rule__Regex__Group__3_in_rule__Regex__Group__22880 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_19_in_rule__Regex__Group__2__Impl2908 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Regex__Group__3__Impl_in_rule__Regex__Group__32939 = new BitSet(new long[]{0x0000000000200000L});
    public static final BitSet FOLLOW_rule__Regex__Group__4_in_rule__Regex__Group__32942 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_20_in_rule__Regex__Group__3__Impl2970 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Regex__Group__4__Impl_in_rule__Regex__Group__43001 = new BitSet(new long[]{0x0000000000000100L});
    public static final BitSet FOLLOW_rule__Regex__Group__5_in_rule__Regex__Group__43004 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_21_in_rule__Regex__Group__4__Impl3032 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Regex__Group__5__Impl_in_rule__Regex__Group__53063 = new BitSet(new long[]{0x0000000000400000L});
    public static final BitSet FOLLOW_rule__Regex__Group__6_in_rule__Regex__Group__53066 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Regex__TapeAssignment_5_in_rule__Regex__Group__5__Impl3093 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Regex__Group__6__Impl_in_rule__Regex__Group__63123 = new BitSet(new long[]{0x0000000010000040L});
    public static final BitSet FOLLOW_rule__Regex__Group__7_in_rule__Regex__Group__63126 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_22_in_rule__Regex__Group__6__Impl3154 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Regex__Group__7__Impl_in_rule__Regex__Group__73185 = new BitSet(new long[]{0x0000000000800000L});
    public static final BitSet FOLLOW_rule__Regex__Group__8_in_rule__Regex__Group__73188 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Regex__ExpressionAssignment_7_in_rule__Regex__Group__7__Impl3215 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Regex__Group__8__Impl_in_rule__Regex__Group__83245 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_23_in_rule__Regex__Group__8__Impl3273 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Regex__Group_1__0__Impl_in_rule__Regex__Group_1__03322 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Regex__Group_1__1_in_rule__Regex__Group_1__03325 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Regex__NameAssignment_1_0_in_rule__Regex__Group_1__0__Impl3352 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Regex__Group_1__1__Impl_in_rule__Regex__Group_1__13382 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Regex__Group_1__1__Impl3410 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ANDExpression__Group__0__Impl_in_rule__ANDExpression__Group__03445 = new BitSet(new long[]{0x0000000002000002L});
    public static final BitSet FOLLOW_rule__ANDExpression__Group__1_in_rule__ANDExpression__Group__03448 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleORExpression_in_rule__ANDExpression__Group__0__Impl3475 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ANDExpression__Group__1__Impl_in_rule__ANDExpression__Group__13504 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ANDExpression__Group_1__0_in_rule__ANDExpression__Group__1__Impl3531 = new BitSet(new long[]{0x0000000002000002L});
    public static final BitSet FOLLOW_rule__ANDExpression__Group_1__0__Impl_in_rule__ANDExpression__Group_1__03566 = new BitSet(new long[]{0x0000000002000000L});
    public static final BitSet FOLLOW_rule__ANDExpression__Group_1__1_in_rule__ANDExpression__Group_1__03569 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ANDExpression__Group_1__1__Impl_in_rule__ANDExpression__Group_1__13627 = new BitSet(new long[]{0x0000000010000040L});
    public static final BitSet FOLLOW_rule__ANDExpression__Group_1__2_in_rule__ANDExpression__Group_1__13630 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__ANDExpression__Group_1__1__Impl3658 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ANDExpression__Group_1__2__Impl_in_rule__ANDExpression__Group_1__23689 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ANDExpression__RightAssignment_1_2_in_rule__ANDExpression__Group_1__2__Impl3716 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ORExpression__Group__0__Impl_in_rule__ORExpression__Group__03752 = new BitSet(new long[]{0x0000000004000002L});
    public static final BitSet FOLLOW_rule__ORExpression__Group__1_in_rule__ORExpression__Group__03755 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleKleeneExpression_in_rule__ORExpression__Group__0__Impl3782 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ORExpression__Group__1__Impl_in_rule__ORExpression__Group__13811 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ORExpression__Group_1__0_in_rule__ORExpression__Group__1__Impl3838 = new BitSet(new long[]{0x0000000004000002L});
    public static final BitSet FOLLOW_rule__ORExpression__Group_1__0__Impl_in_rule__ORExpression__Group_1__03873 = new BitSet(new long[]{0x0000000004000000L});
    public static final BitSet FOLLOW_rule__ORExpression__Group_1__1_in_rule__ORExpression__Group_1__03876 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ORExpression__Group_1__1__Impl_in_rule__ORExpression__Group_1__13934 = new BitSet(new long[]{0x0000000010000040L});
    public static final BitSet FOLLOW_rule__ORExpression__Group_1__2_in_rule__ORExpression__Group_1__13937 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_26_in_rule__ORExpression__Group_1__1__Impl3965 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ORExpression__Group_1__2__Impl_in_rule__ORExpression__Group_1__23996 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ORExpression__RightAssignment_1_2_in_rule__ORExpression__Group_1__2__Impl4023 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__KleeneExpression__Group__0__Impl_in_rule__KleeneExpression__Group__04059 = new BitSet(new long[]{0x0000000008000002L});
    public static final BitSet FOLLOW_rule__KleeneExpression__Group__1_in_rule__KleeneExpression__Group__04062 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePrimaryExpression_in_rule__KleeneExpression__Group__0__Impl4089 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__KleeneExpression__Group__1__Impl_in_rule__KleeneExpression__Group__14118 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__KleeneExpression__Group_1__0_in_rule__KleeneExpression__Group__1__Impl4145 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__KleeneExpression__Group_1__0__Impl_in_rule__KleeneExpression__Group_1__04180 = new BitSet(new long[]{0x0000000008000000L});
    public static final BitSet FOLLOW_rule__KleeneExpression__Group_1__1_in_rule__KleeneExpression__Group_1__04183 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__KleeneExpression__Group_1__1__Impl_in_rule__KleeneExpression__Group_1__14241 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_27_in_rule__KleeneExpression__Group_1__1__Impl4269 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PrimaryExpression__Group_0__0__Impl_in_rule__PrimaryExpression__Group_0__04304 = new BitSet(new long[]{0x0000000010000040L});
    public static final BitSet FOLLOW_rule__PrimaryExpression__Group_0__1_in_rule__PrimaryExpression__Group_0__04307 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_28_in_rule__PrimaryExpression__Group_0__0__Impl4335 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PrimaryExpression__Group_0__1__Impl_in_rule__PrimaryExpression__Group_0__14366 = new BitSet(new long[]{0x0000000020000000L});
    public static final BitSet FOLLOW_rule__PrimaryExpression__Group_0__2_in_rule__PrimaryExpression__Group_0__14369 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleExpression_in_rule__PrimaryExpression__Group_0__1__Impl4396 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PrimaryExpression__Group_0__2__Impl_in_rule__PrimaryExpression__Group_0__24425 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_29_in_rule__PrimaryExpression__Group_0__2__Impl4453 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Grammar__Group__0__Impl_in_rule__Grammar__Group__04490 = new BitSet(new long[]{0x0000000040000100L});
    public static final BitSet FOLLOW_rule__Grammar__Group__1_in_rule__Grammar__Group__04493 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Grammar__Group__1__Impl_in_rule__Grammar__Group__14551 = new BitSet(new long[]{0x0000000040000000L});
    public static final BitSet FOLLOW_rule__Grammar__Group__2_in_rule__Grammar__Group__14554 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Grammar__Group_1__0_in_rule__Grammar__Group__1__Impl4581 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Grammar__Group__2__Impl_in_rule__Grammar__Group__24612 = new BitSet(new long[]{0x0000000000400000L});
    public static final BitSet FOLLOW_rule__Grammar__Group__3_in_rule__Grammar__Group__24615 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_30_in_rule__Grammar__Group__2__Impl4643 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Grammar__Group__3__Impl_in_rule__Grammar__Group__34674 = new BitSet(new long[]{0x0000000000800000L});
    public static final BitSet FOLLOW_rule__Grammar__Group__4_in_rule__Grammar__Group__34677 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_22_in_rule__Grammar__Group__3__Impl4705 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Grammar__Group__4__Impl_in_rule__Grammar__Group__44736 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_23_in_rule__Grammar__Group__4__Impl4764 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Grammar__Group_1__0__Impl_in_rule__Grammar__Group_1__04805 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Grammar__Group_1__1_in_rule__Grammar__Group_1__04808 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Grammar__NameAssignment_1_0_in_rule__Grammar__Group_1__0__Impl4835 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Grammar__Group_1__1__Impl_in_rule__Grammar__Group_1__14865 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Grammar__Group_1__1__Impl4893 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transitions__Group__0__Impl_in_rule__Transitions__Group__04928 = new BitSet(new long[]{0x0000000080000100L});
    public static final BitSet FOLLOW_rule__Transitions__Group__1_in_rule__Transitions__Group__04931 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transitions__Group__1__Impl_in_rule__Transitions__Group__14989 = new BitSet(new long[]{0x0000000080000000L});
    public static final BitSet FOLLOW_rule__Transitions__Group__2_in_rule__Transitions__Group__14992 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transitions__Group_1__0_in_rule__Transitions__Group__1__Impl5019 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transitions__Group__2__Impl_in_rule__Transitions__Group__25050 = new BitSet(new long[]{0x0000000100500000L});
    public static final BitSet FOLLOW_rule__Transitions__Group__3_in_rule__Transitions__Group__25053 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_31_in_rule__Transitions__Group__2__Impl5081 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transitions__Group__3__Impl_in_rule__Transitions__Group__35112 = new BitSet(new long[]{0x0000000000400000L});
    public static final BitSet FOLLOW_rule__Transitions__Group__4_in_rule__Transitions__Group__35115 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transitions__UnorderedGroup_3_in_rule__Transitions__Group__3__Impl5142 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transitions__Group__4__Impl_in_rule__Transitions__Group__45172 = new BitSet(new long[]{0x0000000000800100L});
    public static final BitSet FOLLOW_rule__Transitions__Group__5_in_rule__Transitions__Group__45175 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_22_in_rule__Transitions__Group__4__Impl5203 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transitions__Group__5__Impl_in_rule__Transitions__Group__55234 = new BitSet(new long[]{0x0000000000800000L});
    public static final BitSet FOLLOW_rule__Transitions__Group__6_in_rule__Transitions__Group__55237 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transitions__TransitionsAssignment_5_in_rule__Transitions__Group__5__Impl5264 = new BitSet(new long[]{0x0000000000000102L});
    public static final BitSet FOLLOW_rule__Transitions__Group__6__Impl_in_rule__Transitions__Group__65295 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_23_in_rule__Transitions__Group__6__Impl5323 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transitions__Group_1__0__Impl_in_rule__Transitions__Group_1__05368 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Transitions__Group_1__1_in_rule__Transitions__Group_1__05371 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transitions__NameAssignment_1_0_in_rule__Transitions__Group_1__0__Impl5398 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transitions__Group_1__1__Impl_in_rule__Transitions__Group_1__15428 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Transitions__Group_1__1__Impl5456 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transitions__Group_3_0__0__Impl_in_rule__Transitions__Group_3_0__05491 = new BitSet(new long[]{0x0000000000200000L});
    public static final BitSet FOLLOW_rule__Transitions__Group_3_0__1_in_rule__Transitions__Group_3_0__05494 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_20_in_rule__Transitions__Group_3_0__0__Impl5522 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transitions__Group_3_0__1__Impl_in_rule__Transitions__Group_3_0__15553 = new BitSet(new long[]{0x0000000000000100L});
    public static final BitSet FOLLOW_rule__Transitions__Group_3_0__2_in_rule__Transitions__Group_3_0__15556 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_21_in_rule__Transitions__Group_3_0__1__Impl5584 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transitions__Group_3_0__2__Impl_in_rule__Transitions__Group_3_0__25615 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transitions__TapeAssignment_3_0_2_in_rule__Transitions__Group_3_0__2__Impl5642 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transitions__Group_3_1__0__Impl_in_rule__Transitions__Group_3_1__05678 = new BitSet(new long[]{0x0000000000200000L});
    public static final BitSet FOLLOW_rule__Transitions__Group_3_1__1_in_rule__Transitions__Group_3_1__05681 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_32_in_rule__Transitions__Group_3_1__0__Impl5709 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transitions__Group_3_1__1__Impl_in_rule__Transitions__Group_3_1__15740 = new BitSet(new long[]{0x0000000000000100L});
    public static final BitSet FOLLOW_rule__Transitions__Group_3_1__2_in_rule__Transitions__Group_3_1__15743 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_21_in_rule__Transitions__Group_3_1__1__Impl5771 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transitions__Group_3_1__2__Impl_in_rule__Transitions__Group_3_1__25802 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transitions__StatesAssignment_3_1_2_in_rule__Transitions__Group_3_1__2__Impl5829 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transition__Group__0__Impl_in_rule__Transition__Group__05865 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_rule__Transition__Group__1_in_rule__Transition__Group__05868 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transition__StartAssignment_0_in_rule__Transition__Group__0__Impl5895 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transition__Group__1__Impl_in_rule__Transition__Group__15925 = new BitSet(new long[]{0x0000000000000100L});
    public static final BitSet FOLLOW_rule__Transition__Group__2_in_rule__Transition__Group__15928 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_33_in_rule__Transition__Group__1__Impl5956 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transition__Group__2__Impl_in_rule__Transition__Group__25987 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Transition__Group__3_in_rule__Transition__Group__25990 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transition__EndAssignment_2_in_rule__Transition__Group__2__Impl6017 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transition__Group__3__Impl_in_rule__Transition__Group__36047 = new BitSet(new long[]{0x000001D000000030L});
    public static final BitSet FOLLOW_rule__Transition__Group__4_in_rule__Transition__Group__36050 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Transition__Group__3__Impl6078 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transition__Group__4__Impl_in_rule__Transition__Group__46109 = new BitSet(new long[]{0x0000000C00000002L});
    public static final BitSet FOLLOW_rule__Transition__Group__5_in_rule__Transition__Group__46112 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transition__StartInstructionsAssignment_4_in_rule__Transition__Group__4__Impl6139 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transition__Group__5__Impl_in_rule__Transition__Group__56169 = new BitSet(new long[]{0x0000000800000002L});
    public static final BitSet FOLLOW_rule__Transition__Group__6_in_rule__Transition__Group__56172 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transition__Group_5__0_in_rule__Transition__Group__5__Impl6199 = new BitSet(new long[]{0x0000000400000002L});
    public static final BitSet FOLLOW_rule__Transition__Group__6__Impl_in_rule__Transition__Group__66230 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transition__Group_6__0_in_rule__Transition__Group__6__Impl6257 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transition__Group_5__0__Impl_in_rule__Transition__Group_5__06302 = new BitSet(new long[]{0x000001D000000030L});
    public static final BitSet FOLLOW_rule__Transition__Group_5__1_in_rule__Transition__Group_5__06305 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_34_in_rule__Transition__Group_5__0__Impl6333 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transition__Group_5__1__Impl_in_rule__Transition__Group_5__16364 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transition__StartInstructionsAssignment_5_1_in_rule__Transition__Group_5__1__Impl6391 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transition__Group_6__0__Impl_in_rule__Transition__Group_6__06425 = new BitSet(new long[]{0x000001D000000030L});
    public static final BitSet FOLLOW_rule__Transition__Group_6__1_in_rule__Transition__Group_6__06428 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_35_in_rule__Transition__Group_6__0__Impl6456 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transition__Group_6__1__Impl_in_rule__Transition__Group_6__16487 = new BitSet(new long[]{0x0000000400000002L});
    public static final BitSet FOLLOW_rule__Transition__Group_6__2_in_rule__Transition__Group_6__16490 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transition__EndInstructionsAssignment_6_1_in_rule__Transition__Group_6__1__Impl6517 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transition__Group_6__2__Impl_in_rule__Transition__Group_6__26547 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transition__Group_6_2__0_in_rule__Transition__Group_6__2__Impl6574 = new BitSet(new long[]{0x0000000400000002L});
    public static final BitSet FOLLOW_rule__Transition__Group_6_2__0__Impl_in_rule__Transition__Group_6_2__06611 = new BitSet(new long[]{0x000001D000000030L});
    public static final BitSet FOLLOW_rule__Transition__Group_6_2__1_in_rule__Transition__Group_6_2__06614 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_34_in_rule__Transition__Group_6_2__0__Impl6642 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transition__Group_6_2__1__Impl_in_rule__Transition__Group_6_2__16673 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transition__EndInstructionsAssignment_6_2_1_in_rule__Transition__Group_6_2__1__Impl6700 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ReadFromTape__Group__0__Impl_in_rule__ReadFromTape__Group__06734 = new BitSet(new long[]{0x0000000000000030L});
    public static final BitSet FOLLOW_rule__ReadFromTape__Group__1_in_rule__ReadFromTape__Group__06737 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_36_in_rule__ReadFromTape__Group__0__Impl6766 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ReadFromTape__Group__1__Impl_in_rule__ReadFromTape__Group__16799 = new BitSet(new long[]{0x0000002000000002L});
    public static final BitSet FOLLOW_rule__ReadFromTape__Group__2_in_rule__ReadFromTape__Group__16802 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ReadFromTape__SymbolAssignment_1_in_rule__ReadFromTape__Group__1__Impl6829 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ReadFromTape__Group__2__Impl_in_rule__ReadFromTape__Group__26859 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ReadFromTape__Group_2__0_in_rule__ReadFromTape__Group__2__Impl6886 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ReadFromTape__Group_2__0__Impl_in_rule__ReadFromTape__Group_2__06923 = new BitSet(new long[]{0x0000000000000100L});
    public static final BitSet FOLLOW_rule__ReadFromTape__Group_2__1_in_rule__ReadFromTape__Group_2__06926 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_37_in_rule__ReadFromTape__Group_2__0__Impl6954 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ReadFromTape__Group_2__1__Impl_in_rule__ReadFromTape__Group_2__16985 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ReadFromTape__TapeAssignment_2_1_in_rule__ReadFromTape__Group_2__1__Impl7012 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__WriteToTape__Group__0__Impl_in_rule__WriteToTape__Group__07046 = new BitSet(new long[]{0x0000000000000030L});
    public static final BitSet FOLLOW_rule__WriteToTape__Group__1_in_rule__WriteToTape__Group__07049 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_38_in_rule__WriteToTape__Group__0__Impl7077 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__WriteToTape__Group__1__Impl_in_rule__WriteToTape__Group__17108 = new BitSet(new long[]{0x0000002000000002L});
    public static final BitSet FOLLOW_rule__WriteToTape__Group__2_in_rule__WriteToTape__Group__17111 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__WriteToTape__SymbolAssignment_1_in_rule__WriteToTape__Group__1__Impl7138 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__WriteToTape__Group__2__Impl_in_rule__WriteToTape__Group__27168 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__WriteToTape__Group_2__0_in_rule__WriteToTape__Group__2__Impl7195 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__WriteToTape__Group_2__0__Impl_in_rule__WriteToTape__Group_2__07232 = new BitSet(new long[]{0x0000000000000100L});
    public static final BitSet FOLLOW_rule__WriteToTape__Group_2__1_in_rule__WriteToTape__Group_2__07235 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_37_in_rule__WriteToTape__Group_2__0__Impl7263 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__WriteToTape__Group_2__1__Impl_in_rule__WriteToTape__Group_2__17294 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__WriteToTape__TapeAssignment_2_1_in_rule__WriteToTape__Group_2__1__Impl7321 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MoveTapeLeft__Group__0__Impl_in_rule__MoveTapeLeft__Group__07355 = new BitSet(new long[]{0x0000008000000000L});
    public static final BitSet FOLLOW_rule__MoveTapeLeft__Group__1_in_rule__MoveTapeLeft__Group__07358 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MoveTapeLeft__Group__1__Impl_in_rule__MoveTapeLeft__Group__17416 = new BitSet(new long[]{0x0000002000000002L});
    public static final BitSet FOLLOW_rule__MoveTapeLeft__Group__2_in_rule__MoveTapeLeft__Group__17419 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_39_in_rule__MoveTapeLeft__Group__1__Impl7447 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MoveTapeLeft__Group__2__Impl_in_rule__MoveTapeLeft__Group__27478 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MoveTapeLeft__Group_2__0_in_rule__MoveTapeLeft__Group__2__Impl7505 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MoveTapeLeft__Group_2__0__Impl_in_rule__MoveTapeLeft__Group_2__07542 = new BitSet(new long[]{0x0000000000000100L});
    public static final BitSet FOLLOW_rule__MoveTapeLeft__Group_2__1_in_rule__MoveTapeLeft__Group_2__07545 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_37_in_rule__MoveTapeLeft__Group_2__0__Impl7573 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MoveTapeLeft__Group_2__1__Impl_in_rule__MoveTapeLeft__Group_2__17604 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MoveTapeLeft__TapeAssignment_2_1_in_rule__MoveTapeLeft__Group_2__1__Impl7631 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MoveTapeRight__Group__0__Impl_in_rule__MoveTapeRight__Group__07665 = new BitSet(new long[]{0x0000010000000000L});
    public static final BitSet FOLLOW_rule__MoveTapeRight__Group__1_in_rule__MoveTapeRight__Group__07668 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MoveTapeRight__Group__1__Impl_in_rule__MoveTapeRight__Group__17726 = new BitSet(new long[]{0x0000002000000002L});
    public static final BitSet FOLLOW_rule__MoveTapeRight__Group__2_in_rule__MoveTapeRight__Group__17729 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_40_in_rule__MoveTapeRight__Group__1__Impl7757 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MoveTapeRight__Group__2__Impl_in_rule__MoveTapeRight__Group__27788 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MoveTapeRight__Group_2__0_in_rule__MoveTapeRight__Group__2__Impl7815 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MoveTapeRight__Group_2__0__Impl_in_rule__MoveTapeRight__Group_2__07852 = new BitSet(new long[]{0x0000000000000100L});
    public static final BitSet FOLLOW_rule__MoveTapeRight__Group_2__1_in_rule__MoveTapeRight__Group_2__07855 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_37_in_rule__MoveTapeRight__Group_2__0__Impl7883 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MoveTapeRight__Group_2__1__Impl_in_rule__MoveTapeRight__Group_2__17914 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MoveTapeRight__TapeAssignment_2_1_in_rule__MoveTapeRight__Group_2__1__Impl7941 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Loop__Group__0__Impl_in_rule__Loop__Group__07975 = new BitSet(new long[]{0x0000020000000100L});
    public static final BitSet FOLLOW_rule__Loop__Group__1_in_rule__Loop__Group__07978 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Loop__Group__1__Impl_in_rule__Loop__Group__18036 = new BitSet(new long[]{0x0000020000000000L});
    public static final BitSet FOLLOW_rule__Loop__Group__2_in_rule__Loop__Group__18039 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Loop__Group_1__0_in_rule__Loop__Group__1__Impl8066 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Loop__Group__2__Impl_in_rule__Loop__Group__28097 = new BitSet(new long[]{0x0000000000400000L});
    public static final BitSet FOLLOW_rule__Loop__Group__3_in_rule__Loop__Group__28100 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_41_in_rule__Loop__Group__2__Impl8128 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Loop__Group__3__Impl_in_rule__Loop__Group__38159 = new BitSet(new long[]{0x0000000000800000L});
    public static final BitSet FOLLOW_rule__Loop__Group__4_in_rule__Loop__Group__38162 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_22_in_rule__Loop__Group__3__Impl8190 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Loop__Group__4__Impl_in_rule__Loop__Group__48221 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_23_in_rule__Loop__Group__4__Impl8249 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Loop__Group_1__0__Impl_in_rule__Loop__Group_1__08290 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Loop__Group_1__1_in_rule__Loop__Group_1__08293 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Loop__NameAssignment_1_0_in_rule__Loop__Group_1__0__Impl8320 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Loop__Group_1__1__Impl_in_rule__Loop__Group_1__18350 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Loop__Group_1__1__Impl8378 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__While__Group__0__Impl_in_rule__While__Group__08413 = new BitSet(new long[]{0x0000040000000100L});
    public static final BitSet FOLLOW_rule__While__Group__1_in_rule__While__Group__08416 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__While__Group__1__Impl_in_rule__While__Group__18474 = new BitSet(new long[]{0x0000040000000000L});
    public static final BitSet FOLLOW_rule__While__Group__2_in_rule__While__Group__18477 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__While__Group_1__0_in_rule__While__Group__1__Impl8504 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__While__Group__2__Impl_in_rule__While__Group__28535 = new BitSet(new long[]{0x0000000000400000L});
    public static final BitSet FOLLOW_rule__While__Group__3_in_rule__While__Group__28538 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_42_in_rule__While__Group__2__Impl8566 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__While__Group__3__Impl_in_rule__While__Group__38597 = new BitSet(new long[]{0x0000000000800000L});
    public static final BitSet FOLLOW_rule__While__Group__4_in_rule__While__Group__38600 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_22_in_rule__While__Group__3__Impl8628 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__While__Group__4__Impl_in_rule__While__Group__48659 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_23_in_rule__While__Group__4__Impl8687 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__While__Group_1__0__Impl_in_rule__While__Group_1__08728 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__While__Group_1__1_in_rule__While__Group_1__08731 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__While__NameAssignment_1_0_in_rule__While__Group_1__0__Impl8758 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__While__Group_1__1__Impl_in_rule__While__Group_1__18788 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__While__Group_1__1__Impl8816 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Turing__Group__0__Impl_in_rule__Turing__Group__08851 = new BitSet(new long[]{0x0000080000000100L});
    public static final BitSet FOLLOW_rule__Turing__Group__1_in_rule__Turing__Group__08854 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Turing__Group__1__Impl_in_rule__Turing__Group__18912 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_rule__Turing__Group__2_in_rule__Turing__Group__18915 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Turing__Group_1__0_in_rule__Turing__Group__1__Impl8942 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Turing__Group__2__Impl_in_rule__Turing__Group__28973 = new BitSet(new long[]{0x0000000000400000L});
    public static final BitSet FOLLOW_rule__Turing__Group__3_in_rule__Turing__Group__28976 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_43_in_rule__Turing__Group__2__Impl9004 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Turing__Group__3__Impl_in_rule__Turing__Group__39035 = new BitSet(new long[]{0x0000000000800000L});
    public static final BitSet FOLLOW_rule__Turing__Group__4_in_rule__Turing__Group__39038 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_22_in_rule__Turing__Group__3__Impl9066 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Turing__Group__4__Impl_in_rule__Turing__Group__49097 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_23_in_rule__Turing__Group__4__Impl9125 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Turing__Group_1__0__Impl_in_rule__Turing__Group_1__09166 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Turing__Group_1__1_in_rule__Turing__Group_1__09169 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Turing__NameAssignment_1_0_in_rule__Turing__Group_1__0__Impl9196 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Turing__Group_1__1__Impl_in_rule__Turing__Group_1__19226 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Turing__Group_1__1__Impl9254 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Tape__Group__0__Impl_in_rule__Tape__Group__09289 = new BitSet(new long[]{0x0000000000000100L});
    public static final BitSet FOLLOW_rule__Tape__Group__1_in_rule__Tape__Group__09292 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Tape__Group__1__Impl_in_rule__Tape__Group__19350 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Tape__Group__2_in_rule__Tape__Group__19353 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Tape__NameAssignment_1_in_rule__Tape__Group__1__Impl9380 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Tape__Group__2__Impl_in_rule__Tape__Group__29410 = new BitSet(new long[]{0x0000000000100000L});
    public static final BitSet FOLLOW_rule__Tape__Group__3_in_rule__Tape__Group__29413 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Tape__Group__2__Impl9441 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Tape__Group__3__Impl_in_rule__Tape__Group__39472 = new BitSet(new long[]{0x0000000000400002L});
    public static final BitSet FOLLOW_rule__Tape__Group__4_in_rule__Tape__Group__39475 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_20_in_rule__Tape__Group__3__Impl9503 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Tape__Group__4__Impl_in_rule__Tape__Group__49534 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Tape__Group_4__0_in_rule__Tape__Group__4__Impl9561 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Tape__Group_4__0__Impl_in_rule__Tape__Group_4__09602 = new BitSet(new long[]{0x00000000000000C0L});
    public static final BitSet FOLLOW_rule__Tape__Group_4__1_in_rule__Tape__Group_4__09605 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_22_in_rule__Tape__Group_4__0__Impl9633 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Tape__Group_4__1__Impl_in_rule__Tape__Group_4__19664 = new BitSet(new long[]{0x0000000000C00000L});
    public static final BitSet FOLLOW_rule__Tape__Group_4__2_in_rule__Tape__Group_4__19667 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Tape__InputAssignment_4_1_in_rule__Tape__Group_4__1__Impl9694 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Tape__Group_4__2__Impl_in_rule__Tape__Group_4__29724 = new BitSet(new long[]{0x0000000000800000L});
    public static final BitSet FOLLOW_rule__Tape__Group_4__3_in_rule__Tape__Group_4__29727 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Tape__Group_4_2__0_in_rule__Tape__Group_4__2__Impl9754 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Tape__Group_4__3__Impl_in_rule__Tape__Group_4__39785 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_23_in_rule__Tape__Group_4__3__Impl9813 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Tape__Group_4_2__0__Impl_in_rule__Tape__Group_4_2__09852 = new BitSet(new long[]{0x0000000000000030L});
    public static final BitSet FOLLOW_rule__Tape__Group_4_2__1_in_rule__Tape__Group_4_2__09855 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_22_in_rule__Tape__Group_4_2__0__Impl9883 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Tape__Group_4_2__1__Impl_in_rule__Tape__Group_4_2__19914 = new BitSet(new long[]{0x0000000400800000L});
    public static final BitSet FOLLOW_rule__Tape__Group_4_2__2_in_rule__Tape__Group_4_2__19917 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Tape__AlphabetAssignment_4_2_1_in_rule__Tape__Group_4_2__1__Impl9944 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Tape__Group_4_2__2__Impl_in_rule__Tape__Group_4_2__29974 = new BitSet(new long[]{0x0000000000800000L});
    public static final BitSet FOLLOW_rule__Tape__Group_4_2__3_in_rule__Tape__Group_4_2__29977 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Tape__Group_4_2_2__0_in_rule__Tape__Group_4_2__2__Impl10004 = new BitSet(new long[]{0x0000000400000002L});
    public static final BitSet FOLLOW_rule__Tape__Group_4_2__3__Impl_in_rule__Tape__Group_4_2__310035 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_23_in_rule__Tape__Group_4_2__3__Impl10063 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Tape__Group_4_2_2__0__Impl_in_rule__Tape__Group_4_2_2__010102 = new BitSet(new long[]{0x0000000000000030L});
    public static final BitSet FOLLOW_rule__Tape__Group_4_2_2__1_in_rule__Tape__Group_4_2_2__010105 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_34_in_rule__Tape__Group_4_2_2__0__Impl10133 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Tape__Group_4_2_2__1__Impl_in_rule__Tape__Group_4_2_2__110164 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Tape__AlphabetAssignment_4_2_2_1_in_rule__Tape__Group_4_2_2__1__Impl10191 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Stack__Group__0__Impl_in_rule__Stack__Group__010225 = new BitSet(new long[]{0x0000000000000100L});
    public static final BitSet FOLLOW_rule__Stack__Group__1_in_rule__Stack__Group__010228 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Stack__Group__1__Impl_in_rule__Stack__Group__110286 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Stack__Group__2_in_rule__Stack__Group__110289 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Stack__NameAssignment_1_in_rule__Stack__Group__1__Impl10316 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Stack__Group__2__Impl_in_rule__Stack__Group__210346 = new BitSet(new long[]{0x0000100000000000L});
    public static final BitSet FOLLOW_rule__Stack__Group__3_in_rule__Stack__Group__210349 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Stack__Group__2__Impl10377 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Stack__Group__3__Impl_in_rule__Stack__Group__310408 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_44_in_rule__Stack__Group__3__Impl10436 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__StatesRegister__Group__0__Impl_in_rule__StatesRegister__Group__010475 = new BitSet(new long[]{0x0000000000000100L});
    public static final BitSet FOLLOW_rule__StatesRegister__Group__1_in_rule__StatesRegister__Group__010478 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__StatesRegister__Group__1__Impl_in_rule__StatesRegister__Group__110536 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__StatesRegister__Group__2_in_rule__StatesRegister__Group__110539 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__StatesRegister__NameAssignment_1_in_rule__StatesRegister__Group__1__Impl10566 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__StatesRegister__Group__2__Impl_in_rule__StatesRegister__Group__210596 = new BitSet(new long[]{0x0000000100000000L});
    public static final BitSet FOLLOW_rule__StatesRegister__Group__3_in_rule__StatesRegister__Group__210599 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__StatesRegister__Group__2__Impl10627 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__StatesRegister__Group__3__Impl_in_rule__StatesRegister__Group__310658 = new BitSet(new long[]{0x0000000000400000L});
    public static final BitSet FOLLOW_rule__StatesRegister__Group__4_in_rule__StatesRegister__Group__310661 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_32_in_rule__StatesRegister__Group__3__Impl10689 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__StatesRegister__Group__4__Impl_in_rule__StatesRegister__Group__410720 = new BitSet(new long[]{0x000020000001C100L});
    public static final BitSet FOLLOW_rule__StatesRegister__Group__5_in_rule__StatesRegister__Group__410723 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_22_in_rule__StatesRegister__Group__4__Impl10751 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__StatesRegister__Group__5__Impl_in_rule__StatesRegister__Group__510782 = new BitSet(new long[]{0x0000000000800000L});
    public static final BitSet FOLLOW_rule__StatesRegister__Group__6_in_rule__StatesRegister__Group__510785 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__StatesRegister__StatesAssignment_5_in_rule__StatesRegister__Group__5__Impl10814 = new BitSet(new long[]{0x000020000001C102L});
    public static final BitSet FOLLOW_rule__StatesRegister__StatesAssignment_5_in_rule__StatesRegister__Group__5__Impl10826 = new BitSet(new long[]{0x000020000001C102L});
    public static final BitSet FOLLOW_rule__StatesRegister__Group__6__Impl_in_rule__StatesRegister__Group__610859 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_23_in_rule__StatesRegister__Group__6__Impl10887 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__State__Group_0__0__Impl_in_rule__State__Group_0__010932 = new BitSet(new long[]{0x000020000001C100L});
    public static final BitSet FOLLOW_rule__State__Group_0__1_in_rule__State__Group_0__010935 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__State__Group_0__1__Impl_in_rule__State__Group_0__110993 = new BitSet(new long[]{0x000000000001C100L});
    public static final BitSet FOLLOW_rule__State__Group_0__2_in_rule__State__Group_0__110996 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__State__StartAssignment_0_1_in_rule__State__Group_0__1__Impl11023 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__State__Group_0__2__Impl_in_rule__State__Group_0__211054 = new BitSet(new long[]{0x0000000000000100L});
    public static final BitSet FOLLOW_rule__State__Group_0__3_in_rule__State__Group_0__211057 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__State__TypeAssignment_0_2_in_rule__State__Group_0__2__Impl11084 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__State__Group_0__3__Impl_in_rule__State__Group_0__311115 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__State__NameAssignment_0_3_in_rule__State__Group_0__3__Impl11142 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__State__Group_1__0__Impl_in_rule__State__Group_1__011180 = new BitSet(new long[]{0x000020000001C100L});
    public static final BitSet FOLLOW_rule__State__Group_1__1_in_rule__State__Group_1__011183 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__State__Group_1__1__Impl_in_rule__State__Group_1__111241 = new BitSet(new long[]{0x000000000001C100L});
    public static final BitSet FOLLOW_rule__State__Group_1__2_in_rule__State__Group_1__111244 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__State__StartAssignment_1_1_in_rule__State__Group_1__1__Impl11271 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__State__Group_1__2__Impl_in_rule__State__Group_1__211302 = new BitSet(new long[]{0x0000000000000100L});
    public static final BitSet FOLLOW_rule__State__Group_1__3_in_rule__State__Group_1__211305 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__State__TypeAssignment_1_2_in_rule__State__Group_1__2__Impl11332 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__State__Group_1__3__Impl_in_rule__State__Group_1__311363 = new BitSet(new long[]{0x0000000000400000L});
    public static final BitSet FOLLOW_rule__State__Group_1__4_in_rule__State__Group_1__311366 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__State__NameAssignment_1_3_in_rule__State__Group_1__3__Impl11393 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__State__Group_1__4__Impl_in_rule__State__Group_1__411423 = new BitSet(new long[]{0x0000000400800100L});
    public static final BitSet FOLLOW_rule__State__Group_1__5_in_rule__State__Group_1__411426 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_22_in_rule__State__Group_1__4__Impl11454 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__State__Group_1__5__Impl_in_rule__State__Group_1__511485 = new BitSet(new long[]{0x0000000400800000L});
    public static final BitSet FOLLOW_rule__State__Group_1__6_in_rule__State__Group_1__511488 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__State__StatesAssignment_1_5_in_rule__State__Group_1__5__Impl11515 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__State__Group_1__6__Impl_in_rule__State__Group_1__611546 = new BitSet(new long[]{0x0000000000800000L});
    public static final BitSet FOLLOW_rule__State__Group_1__7_in_rule__State__Group_1__611549 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__State__Group_1_6__0_in_rule__State__Group_1__6__Impl11576 = new BitSet(new long[]{0x0000000400000002L});
    public static final BitSet FOLLOW_rule__State__Group_1__7__Impl_in_rule__State__Group_1__711607 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_23_in_rule__State__Group_1__7__Impl11635 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__State__Group_1_6__0__Impl_in_rule__State__Group_1_6__011682 = new BitSet(new long[]{0x0000000000000100L});
    public static final BitSet FOLLOW_rule__State__Group_1_6__1_in_rule__State__Group_1_6__011685 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_34_in_rule__State__Group_1_6__0__Impl11713 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__State__Group_1_6__1__Impl_in_rule__State__Group_1_6__111744 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__State__StatesAssignment_1_6_1_in_rule__State__Group_1_6__1__Impl11771 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transitions__UnorderedGroup_3__0_in_rule__Transitions__UnorderedGroup_311806 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transitions__Group_3_0__0_in_rule__Transitions__UnorderedGroup_3__Impl11893 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transitions__Group_3_1__0_in_rule__Transitions__UnorderedGroup_3__Impl11984 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transitions__UnorderedGroup_3__Impl_in_rule__Transitions__UnorderedGroup_3__012043 = new BitSet(new long[]{0x0000000100100002L});
    public static final BitSet FOLLOW_rule__Transitions__UnorderedGroup_3__1_in_rule__Transitions__UnorderedGroup_3__012046 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Transitions__UnorderedGroup_3__Impl_in_rule__Transitions__UnorderedGroup_3__112071 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMachine_in_rule__Cosima__MachineAssignment_0_112103 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleProgram_in_rule__Cosima__ProgramsAssignment_212134 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleComponent_in_rule__Machine__ComponentsAssignment12165 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Regex__NameAssignment_1_012196 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Regex__TapeAssignment_512231 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleExpression_in_rule__Regex__ExpressionAssignment_712266 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleORExpression_in_rule__ANDExpression__RightAssignment_1_212297 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleKleeneExpression_in_rule__ORExpression__RightAssignment_1_212328 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__StringExpression__InputAssignment12359 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Grammar__NameAssignment_1_012390 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Transitions__NameAssignment_1_012421 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Transitions__TapeAssignment_3_0_212456 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Transitions__StatesAssignment_3_1_212495 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTransition_in_rule__Transitions__TransitionsAssignment_512530 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Transition__StartAssignment_012565 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Transition__EndAssignment_212604 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleInstruction_in_rule__Transition__StartInstructionsAssignment_412639 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleInstruction_in_rule__Transition__StartInstructionsAssignment_5_112670 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleInstruction_in_rule__Transition__EndInstructionsAssignment_6_112701 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleInstruction_in_rule__Transition__EndInstructionsAssignment_6_2_112732 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ReadFromTape__SymbolAlternatives_1_0_in_rule__ReadFromTape__SymbolAssignment_112763 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__ReadFromTape__TapeAssignment_2_112800 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__WriteToTape__SymbolAlternatives_1_0_in_rule__WriteToTape__SymbolAssignment_112835 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__WriteToTape__TapeAssignment_2_112872 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__MoveTapeLeft__TapeAssignment_2_112911 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__MoveTapeRight__TapeAssignment_2_112950 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Loop__NameAssignment_1_012985 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__While__NameAssignment_1_013016 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Turing__NameAssignment_1_013047 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Tape__NameAssignment_113078 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Tape__InputAlternatives_4_1_0_in_rule__Tape__InputAssignment_4_113109 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Tape__AlphabetAlternatives_4_2_1_0_in_rule__Tape__AlphabetAssignment_4_2_113142 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Tape__AlphabetAlternatives_4_2_2_1_0_in_rule__Tape__AlphabetAssignment_4_2_2_113175 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Stack__NameAssignment_113208 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__StatesRegister__NameAssignment_113239 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleState_in_rule__StatesRegister__StatesAssignment_513270 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_45_in_rule__State__StartAssignment_0_113306 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleStateType_in_rule__State__TypeAssignment_0_213345 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__State__NameAssignment_0_313376 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_45_in_rule__State__StartAssignment_1_113412 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleStateType_in_rule__State__TypeAssignment_1_213451 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__State__NameAssignment_1_313482 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__State__StatesAssignment_1_513517 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__State__StatesAssignment_1_6_113556 = new BitSet(new long[]{0x0000000000000002L});

}
